Я пытаюсь преобразовать MP4 в файл TS, чтобы сегментировать файл для потоковой передачи iOS. У меня есть файл Video TS (в котором нет звука) и отдельный файл аудио TS. Проблема в том, что иногда аудио и видео не синхронизируются. После некоторого исследования PTS играет очень важную роль в этом.
Итак, если я ffprobe -print_format csv -show_packets test.mp4
результат будет
пакет, видео, 0,0,0,000000, -7200, -0,080000,3600,0.040000, N/A, N/A, 13154,1673, K пакет, видео, 0,3600,0.040000, -3600, -0,040000,3600 , 0.040000, N/A, N/A, 9227,14827, _ пакет, видео, 0,7200,0.080000,0,0,000000,3600,0.040000, N/A, N/A, 8689,24054, _ пакет, видео , 0,14400,0.160000,3600,0.040000,3600,0.040000, N/A, N/A, 7730,32743 _
4-й столбец - это значение PTS, и обратите внимание, что оно начинается с 0.
И если я преобразовываю mp4 в файл TS с помощью ffmpeg -y -i test.mp4 -acodec libfaac -vcodec copy -vbsf h264_mp4toannexb test.ts
а затем запускаю ffprobe -print_format csv -show_packets WG7855.ts
, я получу
пакет, видео, 0,126000,1.400000,118800,1.320000, н / д, н / д, н / д, н / д, 13204,564, K пакет, видео, 0,129600,1.440000,122400,1.360000, N / A, N / A, N / A, N / A, 9233,14476, _ пакет, видео, 0,133200,1.480000,126000,1.400000, N / A, N / A, N / A, N / A, 8695 24816, _ пакет, видео, 0,140400,1,560000,129600,1.440000, N / A, N / A, N / A, N / A, 7736,34216, _
Обратите внимание, что PTS начинается с 126000. Я пробовал -copyts
arg, и PTS все еще начинается с 126000.
Кто-нибудь может помочь?