ffmpeg: Video aufteilen, aber den Zeitstempel beibehalten

ffmpeg: Video aufteilen, aber den Zeitstempel beibehalten

ich versuche, einen Teil eines Videos in MPEG-Dateien aufzuteilen. Mein Problem ist, dass start_pts nicht 0 ist, selbst wenn ich -copyts verwende. Die Originalstreams sehen folgendermaßen aus: Audio & Video:

start_pts=0
start_time=0.000000
duration_ts=N/A
duration=N/A
bit_rate=N/A

Die generierte Datei sieht folgendermaßen aus: Video:

start_pts=133508
start_time=1.483422
duration_ts=450449
duration=5.004989

Audiodaten:

start_pts=131588
start_time=1.462089
duration_ts=445440
duration=4.949333

Der verwendete Befehl:

-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

Meine Frage ist, warum start_pts nicht Null ist?

Antwort1

Verwenden

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 ist ein Streaming-Format und ffmpeg verschiebt Zeitstempel, um mögliche Verzögerungen bei der Videokodierung auszugleichen. Dies lässt sich vermeiden, indem Sie muxpreload und muxdelay auf 0 setzen.

verwandte Informationen