Combine / mescle os arquivos de vídeo esquerdo e direito

0

Como posso juntar as duas partes de um filme estereoscópico para obter um lado a lado?

Eu posso expandir o arquivo da esquerda, assim tudo o que eu preciso é colar o segundo em cima dele, com algo assim:

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

Alguma idéia de qual ferramenta devo usar em um sistema Linux?

    
por Attila O. 11.01.2011 / 21:50

1 resposta

1

UPDATE - Eu coloquei um roteiro prático sobre isso e iniciei um projeto no SourceForge. Eu chamei isso de videomerge3d

link

Experimente o GStreamer

Tenho certeza de que alguém colocará um bom wrapper sobre essa funcionalidade em breve ... enquanto isso, você pode usar o programa gst-launch da linha de comando:

Substitua os arquivos MVI_0735L.MOV e MVI_0735R.MOV pelos seus arquivos e out.avi pelo que você quiser que seja salvo como.

Para reproduzir filmes (reduzido a (640x2) x320 visualizações - não é possível reproduzir 2560x720 porque minha tela é muito estreita), o não-linux pode precisar modificar o 'xvimagesink' para outra coisa.


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. 

Para combinar filmes em 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. 

Aqui está uma versão mais legível (usando \ para juntar as linhas):


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
  • para outra compressão de vídeo, substitua x264enc por jpegenc, etc.
  • para outra compressão de áudio substitua faac por coxo ou remova-o completamente.
por 18.03.2011 / 08:23