
ffmpeg を -ss、-t、-tpad とともに使用して、一連のクリップを合計 6 秒の固定長にトリミングしようとしています。先頭の 2 秒のハンドル + 2 秒の関心 + 最後の 2 秒です。残念ながら、入力クリップの一部には先頭または末尾に 2 秒の末尾がないため、tpad でパディングしようとしています (出力は常に 6 秒になります)。これはある程度機能しますが、今度は関心の 2 秒が常に先頭にあり、私が望んでいるように中間にはありません。どうすればこれを修正できますか?
ボーナスの質問: 現在は黒で埋められています。カラー オプションで、代わりにビデオの最初/最後のフレームを静止画として使用するにはどうすればよいでしょうか?
私が使用するコード (Python から呼び出されますが、フィルターチェーンには違いはありません):
filterchain = "[0:v]tpad=stop=-1,trim=end=6,scale='if(gt(a,1/1),-1,480)':'if(gt(a,1/1),480,-1)',setsar=1,crop=480:480"
subprocess.call(['ffmpeg', '-ss', str(inpoint-2), '-t', '6',
'-i', input_clip, '-filter_complex', filterchain, '-r', '25',
'-c:v', 'prores', '-profile:v', '1', '-c:a', 'pcm_s16le',
'-ar', '48000', "-hide_banner", '-loglevel', 'error', output])