Hi bubibabubi,

On Mon, Jul 14, 2014 at 22:04:21 -0700, bubibabubi wrote:
> http://stackoverflow.com/questions/24604689/how-to-join-two-image-to-one-by-ffmpeg
[...]
> ffmpeg.exe -i b.jpg -i a.jpg -filter_complex scale=120:-1,tile=2x1 -s 
> 1920x1080 out.jpeg -y

That answer on stackoverflow is totally incorrect. The tile filter
takes (two) _consecutive_ frames from _one_ stream. This command is trying to
apply it to two streams. (Well, sort of.)

Using the concat filter, you could make one stream out of your two
images:

ffmpeg -i b.jpg -i a.jpg -filter_complex 'concat,tile=2x1' -s 1920x1080 
out.jpeg -y

or better

ffmpeg -i b.jpg -i a.jpg -filter_complex 'concat,tile=2x1,scale=1920x1080' 
out.jpeg -y

The originally given scale=120:-1 is for making the inputs have the
same size, which is important for the concat filter, but doesn't work
inside a filter_complex. So using this method with differently sized
images, you will need more magic to make them the same size.

Assuming everything is fine and you don't want to scale your output,
the basic answer according to your question is:

ffmpeg -i a.jpg -i b.jpg -filter_complex 'concat,tile=2x1' c.jpg

Álvaro's second response is totally different, and makes the inputs
into a single "image2" stream, which is also a viable solution. I think
s/he doesn't quite understand the details of ffmpeg though.

Another solution is to use the overlay filter with multiple inputs, as
outlined here:
https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20input%20videos

which would turn out somewhat like this for you:
ffmpeg -i a.jpg -i b.jpg -filter_complex 
'[0]scale=1920:1080[sc0];[1]scale=1920:1080[sc1];[sc0]pad=iw*2:ih[pad];[pad][sc1]overlay=w'
 c.jpg

Have fun,
Moritz
_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to