etc

ffmpeg 이용해 여러 동영상을 동시에 재생 (격자)

민사민서 2024. 8. 29. 15:51
brew isntall ffmpeg

가로방향 이어붙이기, 세로방향 이어붙이기

ffmpeg -i input1.mp4 -i input2.mp4 -c:v libx264 -filter_complex "[0:v][1:v]vstack=inputs=2[v]" -map "[v]" output.mp4

글자 추가하기

ffmpeg -i GazeTest_20.mp4 -vf "drawtext=text='sensor-detected':fontcolor=black:fontsize=50:box=1:boxcolor=white:x=50:y=50" -codec:a copy output.mp4

텍스트 추가하고 이어붙이기

ffmpeg -i CAM3_s1_gaze1_gaze3d.mp4 -i CAM3_s1_gaze1_ppap.mp4 -filter_complex \\
"[0:v]drawtext=text='gaze-3d':fontcolor=black:fontsize=30:box=1:boxcolor=white:x=20:y=40[text0]; \\
 [1:v]drawtext=text='ppap-gaze':fontcolor=black:fontsize=30:box=1:boxcolor=white:x=20:y=40[text1]; \\
 [text0][text1]hstack=inputs=2[v]" -map "[v]" -c:v libx264 CAM3_s1_gaze1_merged.mp4

3개일땐?

ffmpeg -i sensor.mp4 -i gaze_3d_smoothing.mp4 -i ppap.mp4 -filter_complex \\
"[0:v]scale=960x540,drawtext=text='sensor-detected':fontcolor=black:fontsize=20:box=1:boxcolor=white:x=20:y=30,setsar=1[text0]; \\
 [1:v]scale=960x540,drawtext=text='gaze3d prediction':fontcolor=black:fontsize=20:box=1:boxcolor=white:x=20:y=30,setsar=1[text1]; \\
 [2:v]scale=960x540,drawtext=text='ppap prediction':fontcolor=black:fontsize=20:box=1:boxcolor=white:x=20:y=30,setsar=1[text2]; \\
 [text0][text1]hstack[top]; \\
 [text2]null[bottomleft]; \\
 color=s=960x540:c=black:d=101,trim=duration=101[black]; \\
 [bottomleft][black]hstack[bottom]; \\
 [top][bottom]vstack[v]" -map "[v]" -c:v libx264 merged.mp4

참고로 우측 하단 검은색 화면의 d= 값과 duration= 값을 나머지 3개 동영상의 길이에 맞춰주어야 최종 결과도 동일한 길이로 나옴

 

GPT 최고~~