VLC: зацикливание файла MPEG-TS с несколькими PID видео - PullRequest
0 голосов
/ 01 декабря 2018

Я моделирую кучу потоков DASH и HLS, используя статические файлы TS (MPEG Transport Stream), которые зациклены, упакованы и обслуживаются следующим образом:

cvlc --loop myfile.ts  -->  Shaka packager  -->  NGINX webserver

Файл TS был создан с использованиемffmpeg для преобразования входного контента 1080p (myfile.mov) в 1 аудиопоток и 3 видеопотока: 720p, 480p и 360p.Полученный файл был проверен, чтобы убедиться, что он был правильно построен.

cvlc используется для зацикливания TS, поскольку он корректно обрабатывает обновления PCR и PTS для каждого цикла, заставляя видео «смотреть» в реальном времени.

Вот моя cvlc команда:

cvlc myfile.ts --sout udp:127.0.0.1:9876 --repeat --loop --sout-all --sout-keep

Моя проблема в том, что cvlc равен случайным образом перенумерация и переупорядочение PID видео, поэтому упаковщикне могу установить правильное разрешение в нужном месте для адаптивной потоковой передачи.

Как зациклить MPEG-TS и cvlc оставить только PID (или, по крайней мере, сохранить их в числовом порядке), иобновлять только PCR / PTS / DTS во время каждого цикла?

1 Ответ

0 голосов
/ 03 декабря 2018

Ключ должен использовать и --sout-ts-es-id-pid и --ts-es-id-pid, чтобы гарантировать, что VLC не изменят PID на входных или выходных каскадах.

Окончательная команда:

cvlc myfile.ts --sout udp:127.0.0.1:9876 --sout-ts-es-id-pid --ts-es-id-pid --repeat --loop --sout-all  --sout-keep
...