ビデオの一部を mpegts に分割しようとしています。問題は、-copyts を使用しても start_pts が 0 にならないことです。元のストリームは次のようになります: オーディオとビデオ:
start_pts=0
start_time=0.000000
duration_ts=N/A
duration=N/A
bit_rate=N/A
生成されたファイルは次のようになります: ビデオ:
start_pts=133508
start_time=1.483422
duration_ts=450449
duration=5.004989
オーディオ:
start_pts=131588
start_time=1.462089
duration_ts=445440
duration=4.949333
使用されたコマンド:
-loglevel debug -i video.mkv -ss 0.00 -profile:v high -to 5.00 -c:v libx264 -c:a aac -pix_fmt yuv420p -copyts -f mpegts test0.ts
私の質問は、なぜ start_pts がゼロではないのかということです。
答え1
使用
ffmpeg -loglevel debug -copyts -i video.mkv -pix_fmt yuv420p -ss 0.00 -to 5.00 -c:v libx264 -profile:v high -c:a aac -muxpreload 0 -muxdelay 0 -f mpegts test0.ts
MPEG-TS はストリーミング形式であり、ffmpeg はビデオ エンコードの遅延に対応するためにタイムスタンプをオフセットします。muxpreload と muxdelay を 0 に設定すると、これを回避できます。