jLuger.de - The power of ffmpeg

In my last post I've shown how to convert a video for a virtual cinema effect when viewed with Google cardboard. I used multiple calls to ffmpeg for this. After some research I was able to reduce it to one call.
ffmpeg -i cool_film.mp4 -f lavfi -i color=c=black:s=1920x1080 \
-filter_complex \
"[0:v]scale=544:-1 [scaled]; [scaled] split [scaled1][scaled2]; \
[1:v][scaled1] overlay=131:375:eof_action=endall [step1]; \
[step1][scaled2] overlay=1243:375 [out]; [0:a]anull[aud]" \
-map "[out]" -map "[aud]" -strict -2 vr_film2.mp4
In this version I was able to use the film directly as an input. Thus the "-i cool_film.mp4".
The "-f lavfi" is need for the "-i color=c=black:s=1920x1080" which generates the black background.
This arguments mean that I now have two streams of input. The first one is the film to convert and the second one is the black background film.
In the next arguments I define a filter (thus the filter_complex) to manipulate the two streams.
First I scale down my first input stream (the video I want to convert) with "[0:v]scale=544:-1 [scaled]". The result gets the identifier "scaled". It turned out that you can't reuse a filter output a second time.
Thus I've splitted the output with "[scaled] split [scaled1][scaled2]". At this point you can't use "scaled" anymore but that doesn't matter as you now got "scaled1" and "scaled2" that you can use.
In the next step I've put one stream "scaled1" over the black background film (second input stream) with "[1:v][scaled1] overlay=131:375:eof_action=endall [step1]". The "eof_action=endall" is needed or the conversion process would run forever as the "-i color=c=black:s=1920x1080" never ends. With "eof_action=endall" the processing of the filters ends when "scaled1" ends and "scaled1" ends when cool_film.mp4 ends.
Now I've got a black background and the video for the left eye. To add the video for the right eye "[step1][scaled2] overlay=1243:375 [out]" is needed.
That's it for the video processing. To get the sound from cool_film.mp4 to fr_film2.mp4 the filter "[0:a]anull[aud]" is needed.
The following map calls tell to use the filter results for video and audio.

You want to convert only the fraction of a film in order to play around with the settings? Put "-ss 00:00:00 -t 00:10:00" before "-i cool_film.mp4" to get only the first 10 Minutes. The arguments need to be before the "-i" of the movie or else they will get a different meaning. Btw. "-ss" means seek and tells the start time of your snippet while "-t" is for the duration of the snippet.