首页 > 解决方案 > 带有网络摄像头输入和立体输出的 ffmpeg

问题描述

我想从我的网络摄像头获取视频,并使用 ffmpeg 将其(实时)输出为立体视频。我正在 Windows 中进行测试,但最终我打算使用 Linux。这是我到目前为止所制作的......

ffmpeg -f dshow -i video="Integrated Webcam" stereo3d=al:sbsl Desktop\test.mpg

在这一点上,我只是想流式传输到一个文件。一旦我知道过滤器工作,我会弄清楚如何流式传输到显示器。不幸的是,这不起作用。

ffmpeg version N-88193-g5834cba05e Copyright (c) 2000-2017 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx libavutil 56. 0.100 / 56. 0.100 libavcodec 58. 0.101 / 58. 0.101 libavformat 58. 0.101 / 58. 0.101 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 0.100 / 7. 0.100 libswscale 5. 0.100 / 5. 0.100 libswresample 3. 0.100 / 3. 0.100 libpostproc 55. 0.100 / 55. 0.100 Input #0, dshow, from 'video=Integrated Webcam': Duration: N/A, start: 341189.309000, bitrate: N/A Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 30 fps, 30 tbr, 10000k tbn, 10000k tbc [NULL @ 000001667e3ee5e0] Unable to find a suitable output format for 'stereo3d=al:sbsl' stereo3d=al:sbsl: Invalid argument

没有stereo3d过滤器,我可以毫无问题地流式传输视频。我正在尝试使用stereo3d抓住其他每一帧,并将其并排放置。(最终,我想弄清楚如何扭曲输出以与 Google Cardboard 一起使用......但一步一步。)

所以,问题是:我的stereo3d过滤器有什么问题?根据文档,它应该可以正常工作...

标签: ffmpegstereo-3d

解决方案


利用

ffmpeg -f dshow -i video="Integrated Webcam" -vf stereo3d=al:sbsl Desktop\test.mpg

stereo3d是一个过滤器,因此作为参数添加到简单的过滤器图规范(-filter:v或其旧形式-vf)或复杂的规范(-filter_complex)。根据您的 shell,最好将参数括在引号中。


推荐阅读