Hi, DkSoul
Thanks for very helpful post. I was able to compile ffmpeg. However I was not able to make it work right.
When I open web camera it says this and freezes:
root@OpenWrt:~# ffmpeg -r 25 -s 640x480 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffmffmpeg -r 25 -s 640x480 -f video4linux2 -i /d
ev/video0 http://localhost:8090/feed1.ffm
FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --prefix=/usr --enable-shared --enable-static --disable-debug --enable-gpl --disable-libfaad --disable-mmx --disable-mmx2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --disable-vhook --enable-zlib --enable-postproc --disable-bsfs --disable-encoders --enable-encoder=ac3 --enable-encoder=mpeg2video --enable-encoder=mpeg4 --enable-encoder=png --enable-encoder=vorbis --enable-encoder=zlib --disable-decoders --enable-decoder=ac3 --enable-decoder=atrac3 --enable-decoder=h264 --enable-decoder=jpegls --enable-decoder=mp3 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=png --enable-decoder=vorbis --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=zlib --disable-muxers --enable-muxer=ffm --enable-muxer=h264 --enable-muxer=mp3 --enable-muxer=mp4 --enable-muxer=mpeg2video --enable-muxer=mpegts --enable-muxer=ogg --disable-demuxers --enable-demuxer=ac3 --enable-demuxer=ffm --enable-demuxer=h264 --enable-demuxer=mp3 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-demuxer=ogg --enable-demuxer=rm --enable-demuxer=rtsp --enable-demuxer=sdp --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=h264 --enable-parser=mpegvideo --enable-parser=mpeg4video --disable-protocols --enable-protocol=file --enable-protocol=http --enable-protocol=pipe --enable-protocol=rtp --enable-protocol=tcp --enable-protocol=udp
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
built on Aug 31 2010 11:29:05, gcc: 4.3.3
[video4linux2 @ 0x42d430][3]Capabilities: 4000001
I was not able to get dmesg. I tested on two cameras.
However my goal is to use EasyCap dc60 framegrabber on it with some assigned driver.
I am able to open device but there it looks like problem with codecs.
root@OpenWrt:~# ffmpeg -r 25 -s 640x480 -f video4linux2 -i /dev/easycap0 http://localhost:8090/feed1.ffm
FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --prefix=/usr --enable-shared --enable-static --disable-debug --enable-gpl --disable-libfaad --disable-mmx --disable-mmx2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --disable-vhook --enable-zlib --enable-postproc --disable-bsfs --disable-encoders --enable-encoder=ac3 --enable-encoder=mpeg2video --enable-encoder=mpeg4 --enable-encoder=png --enable-encoder=vorbis --enable-encoder=zlib --disable-decoders --enable-decoder=ac3 --enable-decoder=atrac3 --enable-decoder=h264 --enable-decoder=jpegls --enable-decoder=mp3 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=png --enable-decoder=vorbis --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=zlib --disable-muxers --enable-muxer=ffm --enable-muxer=h264 --enable-muxer=mp3 --enable-muxer=mp4 --enable-muxer=mpeg2video --enable-muxer=mpegts --enable-muxer=ogg --disable-demuxers --enable-demuxer=ac3 --enable-demuxer=ffm --enable-demuxer=h264 --enable-demuxer=mp3 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-demuxer=ogg --enable-demuxer=rm --enable-demuxer=rtsp --enable-demuxer=sdp --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=h264 --enable-parser=mpegvideo --enable-parser=mpeg4video --disable-protocols --enable-protocol=file --enable-protocol=http --enable-protocol=pipe --enable-protocol=rtp --enable-protocol=tcp --enable-protocol=udp
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
built on Aug 31 2010 11:29:05, gcc: 4.3.3
[video4linux2 @ 0x42d430][3]Capabilities: 5020001
Input #0, video4linux2, from '/dev/easycap0':
Duration: N/A, start: 1283254106.450023, bitrate: 122880 kb/s
Stream #0.0: Video: YUY2 / 0x32595559, yuyv422, 640x480, 122880 kb/s, 25 tbr, 1000k tbn, 25 tbc
[imgconvert @ 0x431f70]PIX_FMT_YUV420P will be used as an intermediate format for rescaling
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
Stream #0.0: Video: mpeg4, yuv420p, 352x288, q=1-5, 200 kb/s, 1000k tbn, 15 tbc
Stream mapping:
Stream #0.0 -> #0.0
Unsupported codec (id=14) for input stream #0.0
ioctl(VIDIOC_QBUF)
and here is dmesg. I looks like framegraber opens correctly.
easycap: easycap_open: ==========OPEN=========
easycap: easycap_open: starting initialization
easycap: adjust_standard: user requests standard: PAL_BGHIN
easycap: adjust_format: sought: 640x480,UYVY(0x59565955),1=field,0x00=std mask
easycap: adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n
easycap: adjust_brightness: adjusting brightness to 0x7F
easycap: adjust_contrast: adjusting contrast to 0x3F
easycap: adjust_saturation: adjusting saturation to 0x2F
easycap: adjust_hue: adjusting hue to 0x00
easycap: easycap_open: finished initialization
easycap: adjust_format: sought: 640x480,YU12(0x32315559),4=field,0x00=std mask
easycap: adjust_format: cannot do: 640x480 with standard mask 0x00
easycap: adjust_format: cannot do 640x... with standard mask 0x00
easycap: adjust_format: cannot do ...x480 with standard mask 0x00
easycap: adjust_format: 640x480 unmatched
easycap: adjust_format: sought: 640x480,422P(0x50323234),4=field,0x00=std mask
easycap: adjust_format: cannot do: 640x480 with standard mask 0x00
easycap: adjust_format: cannot do 640x... with standard mask 0x00
easycap: adjust_format: cannot do ...x480 with standard mask 0x00
easycap: adjust_format: 640x480 unmatched
easycap: adjust_format: sought: 640x480,YUYV(0x56595559),4=field,0x00=std mask
easycap: adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_YUY2-i
easycap: easycap_ioctl: user requests input 0
easycap: easycap_ioctl: requested input already in effect
easycap: submit_video_urbs: submission of all video urbs
easycap: submit_video_urbs: ERROR: not ready to capture after waiting one second
easycap: submit_video_urbs: ..... continuing anyway
easycap: submit_video_urbs: submitted 16 video urbs
easycap: easycap_release:
easycap: kill_video_urbs: killing video urbs
easycap: kill_video_urbs: 16 video urbs killed
easycap: easycap_release: ending successfully
and here is my ffsever.conf
root@OpenWrt:~# cat /etc/ffserver.conf
Port 8090
# bind to all IPs aliased or not
BindAddress 0.0.0.0
# max number of simultaneous clients
MaxClients 1000
# max bandwidth per-client (kb/s)
MaxBandwidth 10000 s
# Suppress that if you want to launch ffserver as a daemon.
NoDaemon
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 5M
</Feed>
# mpeg
<Stream test.mpg>
# the source feed
Feed feed1.ffm
# the output stream format - FLV = FLash Video
Format mpegts
VideoCodec mpeg4
# this must match the ffmpeg -r argument
VideoFrameRate 15
# generally leave this is a large number
VideoBufferSize 80000
# another quality tweak
VideoBitRate 200
# quality ranges - 1-31 (1 = best, 31 = worst)
VideoQMin 1
VideoQMax 5
VideoSize 640x480
# this sets how many seconds in past to start
PreRoll 0
# wecams don't have audio
Noaudio
</Stream>
Did I choose correct codec? Which is "good" for "slow" router CPU? (fast encoder)
Thanks
BTW: here is thread on EasyCap driver forum: https://sourceforge.net/projects/easyca … dex/page/1