[FFmpeg-user] Encode to Side by Side Video

Lou lou at lrcd.com
Mon Jun 4 23:06:26 CEST 2012


On Mon, 4 Jun 2012 13:27:00 -0400
Kyle Schwarz <kshawkeye at gmail.com> wrote:

> On Wed, May 30, 2012 at 3:18 PM, Lou <lou at lrcd.com> wrote:
> >
> > On Wed, 30 May 2012 17:49:19 +0000 (UTC)
> > Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:
> >
> > > Kyle <kshawkeye <at> gmail.com> writes:
> > >
> > > > I'm wondering if FFmpeg can encode two different videos
> > > > into one video that plays both side by side?
> > >
> > > Did you try the video filter system?
> > > Overlay worked fine when I tried it once.
> > >
> > > Carl Eugen
> >
> > Overlay as Carl mentioned:
> > ffmpeg -i right.mp4 -filter:v
> > "[in]setpts=PTS-STARTPTS,pad=iw*2:ih:iw:0,[T1]overlay=0:0[out];movie=left.mp4,setpts=PTS-STARTPTS[T1]"
> > output
> 
> I tried the given example and got:
> ffmpeg -y
>  -i "input-1.flv" -filter:v "[in]setpts=PTS-STARTPTS,pad=iw*2:ih:iw:0,[T1]overla
> y=0:0[out];movie=input-2.flv,setpts=PTS-STARTPTS[T1]" output.mp4
> ffmpeg version N-41195-g8a0efa9 Copyright (c) 2000-2012 the FFmpeg developers
>   built on May 31 2012 20:10:06 with gcc 4.6.3
>   configuration: --disable-static --enable-shared --enable-gpl --enable-version3
>  --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzli
> b --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --
> enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lam
> e --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
>  --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc
> --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --en
> able-libxavs --enable-libxvid --enable-zlib
>   libavutil      51. 55.100 / 51. 55.100
>   libavcodec     54. 23.100 / 54. 23.100
>   libavformat    54.  6.101 / 54.  6.101
>   libavdevice    54.  0.100 / 54.  0.100
>   libavfilter     2. 77.100 /  2. 77.100
>   libswscale      2.  1.100 /  2.  1.100
>   libswresample   0. 15.100 /  0. 15.100
>   libpostproc    52.  0.100 / 52.  0.100
> Input #0, flv, from 'input-1.flv':
>   Metadata:
>     starttime       : 0
>     totalduration   : 474
>     totaldatarate   : 1005
>     bytelength      : 59533158
>     canseekontime   : true
>     sourcedata      : B4A7D0021HH1338775178100633
>     purl            :
>     pmsg            :
>   Duration: 00:07:53.76, start: 0.000000, bitrate: 1005 kb/s
>     Stream #0:0: Video: h264 (Main), yuv420p, 854x480, 890 kb/s, 25 tbr, 1k tbn,
>  50 tbc
>     Stream #0:1: Audio: aac, 44100 Hz, stereo, s16, 130 kb/s
> [movie @ 0000000002bfdd80] seek_point:0 format_name:(null) file_name:input-2.flv
>  stream_index:0
> [buffer @ 000000000092e2e0] w:854 h:480 pixfmt:yuv420p tb:1/1000 sar:0/1 sws_par
> am:flags=2
> [buffersink @ 000000000092e5e0] No opaque field provided
> [overlay @ 0000000002ed7cc0] auto-inserting filter 'auto-inserted scaler 0' betw
> een the filter 'Parsed_pad_1' and the filter 'Parsed_overlay_2'
> [movie @ 0000000002bfdd80] TB:0.001000
> [buffer @ 000000000092e2e0] TB:0.001000
> [pad @ 0000000002ed7c40] w:854 h:480 -> w:1708 h:480 x:854 y:0 color:0x000000FF
> [scale @ 0000000000533320] w:1708 h:480 fmt:yuv420p sar:0/1 -> w:1708 h:480 fmt:
> yuva420p sar:0/1 flags:0x4
> [overlay @ 0000000002ed7cc0] main w:854 h:480 fmt:yuv420p overlay x:0 y:0 w:1708
>  h:480 fmt:yuva420p
> [overlay @ 0000000002ed7cc0] Overlay area (0,0)<->(1708,480) not within the main
>  area (0,0)<->(854,480) or zero-sized
> Error opening filters!
> 
> I also tried the first example given in the doc for libavfilter and
> that also failed with a similar message.

Can you show your command?

> Any ideas?
> 
> Best regards,
>   Kyle Schwarz

My example worked until 4e781c25b7b1955d1a9a0b0771c3ce1acb0957bd. Some
(untested?) flotsam from libav. Or maybe there is a syntax change that
I didn't notice. It should work if you switch to
cca9528524c7a4b91451f4322bd50849af5d057e.


More information about the ffmpeg-user mailing list