ffmpeg: Dividindo o vídeo, mas mantendo o carimbo de data/hora

ffmpeg: Dividindo o vídeo, mas mantendo o carimbo de data/hora

estou tentando dividir uma parte de um vídeo em mpegts. Meu problema é que start_pts não é 0, mesmo se eu usar -copyts. Os stremas originais são assim: Áudio e Vídeo:

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

O arquivo gerado é assim: Vídeo:

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

Áudio:

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

O comando usado:

-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

Minha pergunta é por que start_pts não é zero?

Responder1

Usar

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 é um formato de streaming e o ffmpeg compensará os carimbos de data e hora para acomodar possíveis atrasos na codificação de vídeo. Definir muxpreload e muxdelay como 0 pode evitar isso.

informação relacionada