Context: 3 input videos:
foo.mov: 1080x1920 (vertical, NOT horizontal) with audio.
bar.mp4 and fiz.mp4: 480x360, with audio.
(Note: .mp4, differs from .mov)
Goal: to concat all 3 videos. Output out.mp4 should be 480x360. Squeeze foo.mov but keep its aspect ratio, taking up 100% height, but the slim video should stand only in the center, with left and right sides being black (or other color) void. foo.mov should not be cropped.
I currently have this command below (added new-line characters for better visualization) for concating, but need to fill the missing code at PLACEHOLDER1 to generate v0, such that v0 is resized to 480x360 like described above. If my attempt so far is correct, please help complete PLACEHOLDER1; else, please offer a better solution with explanation.
ffmpeg
-r 24 -i foo.mov
-r 24 -i bar.mp4
-r 24 -i fiz.mp4
-filter_complex
"[0:v] PLACEHOLDER1 [v0];
[v0][1][2] concat=n=3:v=1:a=1 [v][a]"
-map "[v]" -map "[a]" out.mp4
Running
ffmpeg -n -i foo.MOV -i bar.mp4 -i fiz.mp4
gives this info:
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
built with Apple clang version 11.0.3 (clang-1103.0.32.62)
[...configuration omitted...]
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'foo.MOV':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : [omitted]
com.apple.quicktime.make: [omitted]
com.apple.quicktime.model: [omitted]
com.apple.quicktime.software: [omitted]
com.apple.quicktime.creationdate: [omitted]
Duration: 00:00:04.71, start: 0.000000, bitrate: 17579 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 17492 kb/s, 24 fps, 24 tbr, 600 tbn, 1200 tbc (default)
Metadata:
rotate : 90
creation_time : [omitted]
handler_name : Core Media Video
encoder : H.264
Side data:
displaymatrix: rotation of -90.00 degrees
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default)
Metadata:
creation_time : [omitted]
handler_name : Core Media Audio
Stream #0:2(und): Data: none (mebx / 0x7862656D), 9 kb/s (default)
Metadata:
creation_time : [omitted]
handler_name : Core Media Metadata
Stream #0:3(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
Metadata:
creation_time : [omitted]
handler_name : Core Media Metadata
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bar.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:00:01.94, start: 0.000000, bitrate: 641 kb/s
Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/unknown/smpte170m), 480x360 [SAR 1:1 DAR 4:3], 354 kb/s, 24.58 fps, 24.58 tbr, 113734695.00 tbn, 49.16 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 280 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'fiz.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.29.100
Duration: 00:00:01.98, start: 0.000000, bitrate: 725 kb/s
Stream #2:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/unknown/smpte170m), 480x360 [SAR 1:1 DAR 4:3], 442 kb/s, 24.58 fps, 24.58 tbr, 113734695.00 tbn, 49.16 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 278 kb/s (default)
Metadata:
handler_name : SoundHandler