合并/合并左右视频文件

合并/合并左右视频文件

我怎样才能将立体电影的两个部分合并成一部并排的电影?

我可以展开左边的文件,这样我所需要做的就是将第二个文件粘贴到它的上面,如下所示:

mencoder left-file.mkv -o side-by-side.avi -oac copy -ovc lavc -of avi -vf scale=1280:720,expand=-1280:0:0:0 -sws 3 -lavcopts vbitrate=16000

知道我应该在 Linux 系统上使用哪种工具吗?

答案1

更新- 我为此编写了一个方便的包装脚本,并在 SourceForge 上启动了一个项目。我将其命名为视频合并3D

http://videomerge3d.sourceforge.net/


尝试 GStreamer

我相信很快就会有人对这个功能进行很好的包装...与此同时,您可以使用命令行 gst-launch 程序:

将我的 MVI_0735L.MOV 和 MVI_0735R.MOV 替换为您的文件,并将 out.avi 替换为您想要保存的任何内容。

要播放电影(缩小到 (640x2)x320 视图 - 无法播放 2560x720,因为我的屏幕太窄),非 Linux 可能需要将“xvimagesink”修改为其他内容。


gst-launch filesrc location=MVI_0736L.MOV ! decodebin2 name=LeftVid ! videoscale ! ffmpegcolorspace ! video/x-raw-yuv, width=640, height=360 ! videobox border-alpha=0 right=-640 ! videomixer name=mix ! ffmpegcolorspace ! xvimagesink filesrc location=MVI_0735R.MOV ! decodebin2 name=RightVid ! videoscale ! ffmpegcolorspace ! video/x-raw-yuv, width=640, height=360 ! videobox border-alpha=0 left=-640 ! mix. LeftVid. ! audioconvert ! audiopanorama panorama=-1.00 ! adder name=addaudio ! queue ! autoaudiosink  RightVid. ! audioconvert ! audiopanorama panorama=1.00 ! queue ! addaudio. 

合并720P电影:


gst-launch filesrc location=MVI_0735L.MOV ! decodebin name=Left ! videoscale ! ffmpegcolorspace ! video/x-raw-yuv, width=1280, height=720 ! videobox border-alpha=0 right=-1280 ! queue ! videomixer name=mix ! ffmpegcolorspace ! x264enc ! avimux name=avmux ! queue ! progressreport name="Encoding Progress" ! filesink location=out.avi filesrc location=MVI_0735R.MOV ! decodebin name=Right ! videoscale ! ffmpegcolorspace ! video/x-raw-yuv, width=1280, height=720 ! videobox border-alpha=0 left=-1280 ! queue ! mix.   Left. ! audioconvert ! audiopanorama panorama=-1.00 ! adder name=addaudio ! faac ! queue ! avmux.  Right. ! audioconvert ! audiopanorama panorama=1.00 ! queue ! addaudio. 

这是一个更易读的版本(使用 \ 连接行):


gst-launch-0.10 filesrc location=MVI_0735L.MOV ! decodebin2 name=Left \
                filesrc location=MVI_0735R.MOV ! decodebin2 name=Right \
 Left. ! videoscale ! ffmpegcolorspace ! video/x-raw-yuv, width=1280, height=720 ! videobox border-alpha=0 right=-1280 ! queue ! mix. \
 Right. ! videoscale ! ffmpegcolorspace ! video/x-raw-yuv, width=1280, height=720 ! videobox border-alpha=0 left=-1280 ! queue ! mix.  \
 Left. ! decodebin2 ! audioconvert ! audiopanorama panorama=-1.00 ! queue ! addaudio. \
 Right. ! decodebin2 ! audioconvert ! audiopanorama panorama=1.00 ! queue ! addaudio. \
 adder name=addaudio ! faac ! avmux.  \
 videomixer name=mix ! ffmpegcolorspace ! x264enc ! \
 avimux name=avmux ! progressreport name="Encoding Progress" ! filesink location=out.avi
  • 对于其他视频压缩,请用 jpegenc 等替换 x264enc。
  • 对于其他音频压缩,请用 lame 替换 faac 或将其完全删除。

相关内容