我很难将ffmpeg中的这4个过程组合到一个进程中。
第一个
exec("$this->ffmpeg -i ".storage_path('/app/public_html/uploads/job.mp4')." -codec:a libmp3lame -b:a 128k -vf scale=".$res_dimension->res_width."x".$res_dimension->res_height.",setsar=1:1 ".storage_path('2.mp4'));
第二个
exec("$this->ffmpeg -i ".storage_path($original_file_path)." -codec:a libmp3lame -b:a 128k -vf scale=".$res_dimension->res_width."x".$res_dimension->res_height.",setsar=1:1 ".storage_path('3.mp4'));
第三个
exec("$this->ffmpeg -i ".storage_path('3.mp4')." -i ".storage_path('/app/public_html/uploads/images/index2.png')." -filter_complex 'overlay=20:20' ".storage_path('4.mp4'));
第四
exec("$this->ffmpeg -i ".storage_path('2.mp4')." -i ".storage_path('3.mp4')." -filter_complex '[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' ".storage_path('out4.mp4'));
未定义的变量使您很难理解想要什么。实际执行的ffmpeg命令会更容易理解。但据我所知,你想做这样的事情:
ffmpeg -i input0.mp4 -i input1.mp4 -i image.png -filter_complex "[0:v]scale=1280:720,setsar=1[v0];[1:v]scale=1280:720,setsar=1[bg];[bg][2]overlay=20:20[v1];[v0][0:a][v1][1:a]concat=n=2:v=1:a=1" output.mp4