Итак, у меня есть команда, которая преобразует RTSP в HLS для меня:

sudo ffmpeg -fflags nobuffer -rtsp_transport udp  -i rtsp://admin:'password'@10.2.10.201/video1  -vsync 0  -copyts  -vcodec copy  -movflags frag_keyframe+empty_moov  -an  -hls_flags delete_segments+append_list  -f segment  -segment_list_flags live  -segment_time 3  -segment_list_size 10  -segment_format mpegts  -segment_list /mnt/hls2/stream2.m3u8  -segment_list_type m3u8 /mnt/hls2/%d.ts

Кажется, это работает просто отлично, но в консоли я получу случайные ошибки вместе со случайным предупреждением о немонотонном DTS в выходном потоке.

Одна из ошибок

Больше ошибок

Другая ошибка

Другой тип ошибки

Тип последней ошибки

Когда я получаю красные ошибки, кажется, что поток останавливается везде, где я его просматриваю (веб-страница, VLC и т.д. Также, по некоторым причинам, на iOS все еще хуже), но он просто вернется, если я обновлю веб-страницу или сделать VLC получить поток снова. Может ли кто-нибудь предложить какое-либо понимание того, что происходит и как предотвратить случайные отключения при преобразовании RTSP в HLS?

Я использую Nginx 1.15.3 в Ubuntu 18.04, если это поможет, который настроен для обработки потоков HLS и будет отлично справляться с ними из источников, отличных от RTSP.

Редактировать: Иногда я замечаю, что он сразу после спуска выберет случайный клип из другого потока HLS, которым управляет nginx, может ли это указывать на большую проблему nginx? Этот поток просто использует ffmpeg для потоковой передачи HLS на сервер прямо с камеры малинового пи и не должен влиять на что-либо в этом потоке.

1 ответ1

0

Флаг -rtsp_transport для этого должен быть переключен на tcp, а не быть udp, в этом случае udp просто вызывает кучу потери пакетов, что вызывало все проблемы, tcp не представляет проблем / ошибок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .