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