Я моделирую кучу потоков 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 во время каждого цикла?