How to stream live-video display from a webcam using FFMPEG command on tcl version 8.0 and windows 7?
Solution 1
Assuming your ffmpeg is a recent build, use
ffmpeg -f dshow -rtbufsize 64M -i "video=Integrated Webcam" -s 1280x720 -f sdl2 -
A window will pop up with the video output.
For not-so-recent builds, you may have to use sdl
and not sdl2
.
Get recent builds from http://ffmpeg.zeranoe.com/builds/
Solution 2
To View a live stream from your camera try:
ffplay -f dshow -video_size 1280x720 -i video="device name"
where device name is found from listing out the available devices using this command:
ffmpeg -list_devices true -f dshow -i dummy
Also, to list the resolutions for a specific camera you can run this command:
ffmpeg -f dshow -list_options true -i video="device name"
M. D. P
Updated on June 04, 2022Comments
-
M. D. P almost 2 years
I am working on project were i need to have the live video streaming. I am able to save the video using the command:
proc a {} { exec ffmpeg -f dshow -rtbufsize 64M -i "video=Integrated Webcam" -s 1280x720 -f sdl2 - } a this is the current error:
ffmpeg started on 2017-11-17 at 15:24:45 Report written to "ffmpeg-20171117-152445.log" Command line: ffmpeg -f dshow -report -rtbufsize 64M -i "video=Integrated Webcam" -s 1280x720 -f sdl2 - ffmpeg version N-87353-g183fd30 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib libavutil 55. 76.100 / 55. 76.100 libavcodec 57.106.101 / 57.106.101 libavformat 57. 82.101 / 57. 82.101 libavdevice 57. 8.101 / 57. 8.101 libavfilter 6.105.100 / 6.105.100 libswscale 4. 7.103 / 4. 7.103 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100 Splitting the commandline. Reading option '-f' ... matched as option 'f' (force format) with argument 'dshow'. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Reading option '-rtbufsize' ... matched as AVOption 'rtbufsize' with argument '64M'. Reading option '-i' ... matched as input url with argument 'video=Integrated Webcam'. Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '1280x720'. Reading option '-f' ... matched as option 'f' (force format) with argument 'sdl2'. Reading option '-' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option report (generate a report) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url video=Integrated Webcam. Applying option f (force format) with argument dshow. Successfully parsed a group of options. Opening an input file: video=Integrated Webcam. [dshow @ 0000000000e06a40] Selecting pin Capture on video dshow passing through packet of type video size 614400 timestamp 5773900280000 orig timestamp 5773900274254 graph timestamp 5773900280000 diff 5746 Integrated Webcam [dshow @ 0000000000e06a40] All info found Input #0, dshow, from 'video=Integrated Webcam': Duration: N/A, start: 577390.028000, bitrate: N/A Stream #0:0, 1, 1/10000000: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 30 fps, 30 tbr, 10000k tbn, 10000k tbc Successfully opened the file. Parsing a group of options: output url -. Applying option s (set frame size (WxH or abbreviation)) with argument 1280x720. Applying option f (force format) with argument sdl2. Successfully parsed a group of options. Opening an output file: -. Successfully opened the file. Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native)) Press [q] to stop, [?] for help cur_dts is invalid (this is harmless if it occurs once at the start per stream) [rawvideo @ 0000000000d90be0] PACKET SIZE: 614400, STRIDE: 1280 detected 4 logical cores dshow passing through packet of type video size 614400 timestamp 5773900600000 orig timestamp 5773900607587 graph timestamp 5773900600000 diff -7587 Integrated Webcam [graph 0 input from stream 0:0 @ 0000000000d96200] Setting 'video_size' to value '640x480' [graph 0 input from stream 0:0 @ 0000000000d96200] Setting 'pix_fmt' to value '1' [graph 0 input from stream 0:0 @ 0000000000d96200] Setting 'time_base' to value '1/10000000' [graph 0 input from stream 0:0 @ 0000000000d96200] Setting 'pixel_aspect' to value '0/1' [graph 0 input from stream 0:0 @ 0000000000d96200] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 0000000000d96200] Setting 'frame_rate' to value '10000000/333333' [graph 0 input from stream 0:0 @ 0000000000d96200] w:640 h:480 pixfmt:yuyv422 tb:1/10000000 fr:10000000/333333 sar:0/1 sws_param:flags=2 [scaler_out_0_0 @ 0000000000d967e0] Setting 'w' to value '1280' [scaler_out_0_0 @ 0000000000d967e0] Setting 'h' to value '720' [scaler_out_0_0 @ 0000000000d967e0] Setting 'flags' to value 'bicubic' [scaler_out_0_0 @ 0000000000d967e0] w:1280 h:720 flags:'bicubic' interl:0 [AVFilterGraph @ 0000000000d94d40] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed [scaler_out_0_0 @ 0000000000d967e0] w:640 h:480 fmt:yuyv422 sar:0/1 -> w:1280 h:720 fmt:yuyv422 sar:0/1 flags:0x4 dshow passing through packet of type video size 614400 timestamp 5773900970000 orig timestamp 5773900940920 graph timestamp 5773900970000 diff 29080 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773901240000 orig timestamp 5773901274253 graph timestamp 5773901240000 diff -34253 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773901720000 orig timestamp 5773901607586 graph timestamp 5773901720000 diff 112414 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773902040000 orig timestamp 5773901940919 graph timestamp 5773902040000 diff 99081 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773902360000 orig timestamp 5773902274252 graph timestamp 5773902360000 diff 85748 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773902680000 orig timestamp 5773902607585 graph timestamp 5773902680000 diff 72415 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773903000000 orig timestamp 5773902940918 graph timestamp 5773903000000 diff 59082 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773903320000 orig timestamp 5773903274251 graph timestamp 5773903320000 diff 45749 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773903640000 orig timestamp 5773903607584 graph timestamp 5773903640000 diff 32416 Integrated Webcam [sdl,sdl2 @ 0000000000d911c0] w:1280 h:720 fmt:yuyv422 -> w:1280 h:720 Output #0, sdl,sdl2, to 'pipe:': Metadata: encoder : Lavf57.82.101 Stream #0:0, 0, 333333/10000000: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, q=2-31, 442368 kb/s, 30 fps, 30 tbn, 30 tbc Metadata: encoder : Lavc57.106.101 rawvideo dshow passing through packet of type video size 614400 timestamp 5773903970000 orig timestamp 5773903940917 graph timestamp 5773903970000 diff 29083 Integrated Webcam dshow passing through packet of type video size 614400 timestamp 5773904280000 orig timestamp 5773904274250 graph timestamp 5773904280000 diff 5750 Integrated Webcam av_interleaved_write_frame(): Operation not permitted No more output streams to write to, finishing. dshow passing through packet of type video size 614400 timestamp 5773904660000 orig timestamp 5773904607583 graph timestamp 5773904660000 diff 52417 Integrated Webcam frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.0797x video:1800kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Input file #0 (video=Integrated Webcam): Input stream #0:0 (video): 1 packets read (614400 bytes); 1 frames decoded; Total: 1 packets (614400 bytes) demuxed Output file #0 (pipe:): Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (1843200 bytes); Total: 1 packets (1843200 bytes) muxed 1 frames successfully decoded, 0 decoding errors dshow passing through packet of type video size 0 timestamp 5773907070000 orig timestamp 2644601806342528 graph timestamp 5773907070000 diff -2638827899272528 Integrated Webcam Conversion failed!
% source c:/other/a/d.tcl couldn't execute "ffmpeg -f dshow -t 00:00:10 -i {video=Integrated Webcam} -b 5000k -s 1280x720 c:\test\sample-a.avi": no such file or directory % source c:/other/a/d.tcl invalid command name "ffmpeg" % source c:/other/a/d.tcl ffmpeg version N-87353-g183fd30 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib libavutil 55. 76.100 / 55. 76.100 libavcodec 57.106.101 / 57.106.101 libavformat 57. 82.101 / 57. 82.101 libavdevice 57. 8.101 / 57. 8.101 libavfilter 6.105.100 / 6.105.100 libswscale 4. 7.103 / 4. 7.103 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100 Input #0, dshow, from 'video=Integrated Webcam': Duration: N/A, start: 523220.045000, bitrate: N/A Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 30 fps, 30 tbr, 10000k tbn, 10000k tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native)) Press [q] to stop, [?] for help Output #0, sdl,sdl2, to 'pipe:': Metadata: encoder : Lavf57.82.101 Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, q=2-31, 442368 kb/s, 30 fps, 30 tbn, 30 tbc Metadata: encoder : Lavc57.106.101 rawvideo av_interleaved_write_frame(): Operation not permitted frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.0471x video:1800kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Conversion failed! %
But, the problem is i don't want to save the video, I just want to have live video streaming.
link: https://trac.ffmpeg.org/wiki/StreamingGuide, provide the command for live video streaming, but it want work, the webcem gets started, but live video streaming is not displayed on screen.
so, can any one help me out to get right "FFMPEG" command or even any TCL script, to get the live video streaming displayed on on my windows 7.
ffplay started on 2017-11-17 at 12:44:40 Report written to "ffplay-20171117-124440.log" Command line: ffplay -report C:/test/sample.avi ffplay version N-87353-g183fd30 Copyright (c) 2003-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib libavutil 55. 76.100 / 55. 76.100 libavcodec 57.106.101 / 57.106.101 libavformat 57. 82.101 / 57. 82.101 libavdevice 57. 8.101 / 57. 8.101 libavfilter 6.105.100 / 6.105.100 libswscale 4. 7.103 / 4. 7.103 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100 nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0 [NULL @ 0000000002aea040] Opening 'C:/test/sample.avi' for reading [file @ 0000000002ae9c80] Setting default whitelist 'file,crypto' [avi @ 0000000002aea040] Format avi probed with size=2048 and score=100 [avi @ 0000000002af30c0] use odml:1 [avi @ 0000000002aea040] Before avformat_find_stream_info() pos: 5678 bytes read:107912 seeks:4 nb_streams:1 [avi @ 0000000002aea040] All info found [avi @ 0000000002aea040] After avformat_find_stream_info() pos: 33035 bytes read:107912 seeks:4 frames:1 Input #0, avi, from 'C:/test/sample.avi': Metadata: encoder : Lavf57.82.101 Duration: 00:00:10.00, start: 0.000000, bitrate: 5072 kb/s Stream #0:0, 1, 1/30: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5078 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc detected 4 logical cores nan M-V: nan fd= 0 aq= 0KB vq= 595KB sq= 0B f=0/0 Video frame changed from size:0x0 format:none serial:-1 to size:1280x720 format:yuv420p serial:1 [ffplay_buffer @ 0000000003a17ee0] Setting 'video_size' to value '1280x720' [ffplay_buffer @ 0000000003a17ee0] Setting 'pix_fmt' to value '0' [ffplay_buffer @ 0000000003a17ee0] Setting 'time_base' to value '1/30' [ffplay_buffer @ 0000000003a17ee0] Setting 'pixel_aspect' to value '1/1' [ffplay_buffer @ 0000000003a17ee0] Setting 'frame_rate' to value '30/1' [ffplay_buffer @ 0000000003a17ee0] w:1280 h:720 pixfmt:yuv420p tb:1/30 fr:30/1 sar:1/1 sws_param: [AVFilterGraph @ 0000000002b14fc0] query_formats: 2 queried, 1 merged, 0 already done, 0 delayed
-
Jerry over 6 years
-
M. D. P about 6 yearscan i use "show_video_device_dialog" @Jerry what can be the right command ????
-
M. D. P about 6 years@Jerry is it possible to display Image using FFMPEG ??
-
-
M. D. P over 6 yearsI tried with both sdl and sdl2, the webcam get started, even the pop-up came, but the pop-up closed within a second. any solution to keep that pop-up open ??
-
Gyan over 6 yearsOops, I didn't remove your time limit. Try now.
-
M. D. P over 6 yearsframe= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.03 bitrate=N/A speed=0.122x video:1800kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown [dshow @ 00000000024722e0] real-time buffer [Integrated Webcam] [video input] too full or near too full (101% of size: 3041280 [rtbufsize parameter])! frame dropped! Conversion failed!
-
Gyan over 6 yearsIncreased input buffer.
-
M. D. P over 6 years"input buffer" means
-
M. D. P over 6 yearsIs the command: ffmpeg -f dshow -rtbufsize 64M -i "video=Integrated Webcam" -s 1280x720 -f sdl2 -
-
Gyan over 6 yearsWith my input, yes. I don't have your webcam :)
-
M. D. P over 6 yearsits my laptop webcam
-
M. D. P over 6 yearsAny solution for over this closing of pop-up ??
-
Gyan over 6 yearsShare full log. Add it to Q.
-
M. D. P over 6 yearsproc a {} { exec ffmpeg -f dshow -rtbufsize 64M -i "video=Integrated Webcam" -s 1280x720 -f sdl2 - } a
-
Gyan over 6 yearsRun it directly from cmd and check.
-
M. D. P over 6 yearsI did, still same, it open a window and close automatically within a second.
-
M. D. P over 6 yearsNo. I got error :- "somefile.mp4: No such file or directoryvq= 0KB sq= 0B f=0/0" for :- "C:\Users>ffplay somefile.mp4"
-
Gyan over 6 yearsYou are supposed to replace somefile with an actual video file name!
-
M. D. P over 6 yearsenable to play video. I got pop-up : ffplay.exe has stopped working, with 2 options "debag" and "close program".
-
Gyan over 6 yearsRun
ffplay -report file.mp4
from within cmd and share the report in the Q. -
M. D. P over 6 yearssame error: ffplay.exe has stopped working, with 2 options "debag" and "close program" :( ...................... my command in CMD was : C:\Users>ffplay -report C:/test/sample.avi
-
Gyan over 6 yearsAdd the report to the Q.
-
M. D. P over 6 yearsproc a {} { exec ffmpeg -f dshow -rtbufsize 64M -i "video=Integrated Webcam" -s 1280x720 -report -f sdl2 - } a ............................ this is how u mean ????
-
Gyan over 6 yearsThe report is a text file generated by ffmpeg in working directory. Add it to the Q.
-
M. D. P over 6 yearsfor me no such text file is generated. If i run any ffmpeg command e.g. ffmpeg command to capture video, from CMD, then it generate only video file with the path selected in cmd. e.g c:/user>ffmpeg -f dshow -i video0 c:/test/sample.mp4 ..... this will save only sample.mp4 at c:/user.
-
Gyan over 6 yearsYou have to add -report.
-
M. D. P over 6 yearsadd the report to the Q.
-
M. D. P over 6 yearsadded both ffmpeg and ffplay report to Q.
-
Gyan over 6 yearsDoes
ffplay -f gdigrab -i desktop -vf scale=iw/4:-1
work? -
M. D. P over 6 yearsproc a {} { exec ffmpeg -f dshow -i "video=Logitech HD Webcam C525" -s 1280x720 -report -f sdl2 - } a .......................... : this code is working , here i change the camera to "Logitech HD Webcam C525"
-
M. D. P over 6 yearsthanks @ Mulvya, but now i need to chech why it is not working with laptop camera
-
M. D. P over 6 yearsffplay -f gdigrab -i desktop -vf scale=iw/4:-1 ...... its not working, same error ffplay.exe has stopped working
-
M. D. P over 6 yearsi am getting " ffmpeg.exe has stopped working " error. Using the answer. Any solution for this ???