带有网络摄像头输入和立体输出的 ffmpeg

ffmpeg with webcam input and stereoscopic output

我想从我的网络摄像头获取视频,并使用 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 过滤器出了什么问题?根据文档,它应该可以正常工作...

使用

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

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