ffmpeg и nginx - перезапуск с перекодированием аудио - PullRequest
0 голосов
/ 01 апреля 2020

Я использую nginx и ffmpeg для передачи видео от моего провайдера. Ранее я использовал ffmpeg с аргументами, в которых я перекодировал видео и перекодировал аудио, потому что мой сервер работал медленно, я отказался от перекодирования.

Так что теперь я использую эту команду:

ffmpeg -re -i http://link.somelink.com:6565/21d12d1/17233 -map 0 -c copy -bsf:a aac_adtstoasc -f flv -flvflags no_duration_filesize rtmp://test_ip/canal/stream

Это работает только когда мой провайдер транслирует аудиокод aac c, но иногда провайдер меняет аудиокод c на ac3. И тогда это не работает. Я пытаюсь что-то вроде этого:

ffmpeg -thread_queue_size 32768 -re -i http://link.somelink.com:6565/21d12d1/17233 -c:v copy -c:a aac -f flv -flvflags no_duration_filesize rtmp://test_ip/canal/stream

И все выглядит так, как будто все в порядке с консолью с ffmpeg, но мое воспроизводимое видео не работает. Ngnix иногда генерирует исключение 304.

Есть предложения?

Пожалуйста, помогите, это очень важно для меня ...

1 Ответ

0 голосов
/ 01 апреля 2020

Ac3 отсутствует в списке поддерживаемых кодеков. Вы должны кодировать свой поток соответственно.

RTMP поддерживает только ограниченное количество кодеков. Наиболее популярными RTMP-видеокодеками являются H264, Sorenson-H263 (он же flv) и аудиокодеки AA C, MP3, Nellymoser, Speex. Если ваше видео закодировано с помощью этих кодеков (наиболее распространенная пара - H264 / AA C), вам не нужно конвертировать. В противном случае вам нужно конвертировать видео в один из поддерживаемых кодеков.

https://github.com/arut/nginx-rtmp-module/wiki/Getting-started-with-nginx-rtmp

...