Как я могу соединить две части стереоскопического фильма, чтобы получить бок о бок?

Я могу развернуть левый файл, таким образом, все, что мне нужно, это вставить второй файл поверх него примерно так:

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 ответ1

1

ОБНОВЛЕНИЕ - я поместил удобный сценарий обертки вокруг этого и начал проект в SourceForge. Я назвал это videomerge3d

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
  • для другого сжатия видео замените x264enc на jpegenc и т. д.
  • для другого аудио сжатия замените faac на lame или просто удалите его полностью.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .