Я пытаюсь разделить часть видео на mpegts. Моя проблема в том, что start_pts не равен 0, даже если я использую -copyts. Исходные потоки выглядят так: Аудио и видео:
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 может этого избежать.