ffmpeg和nginx-通过音频重新编码进行重播

时间:2020-04-01 07:09:26

标签: nginx ffmpeg video-streaming

我使用nginxffmpeg从提供者那里重播视频。以前,我将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音频编解码器流式传输时,此方法才有效,但是有时我的提供者将音频编解码器更改为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 :(得分:0)

Ac3不在受支持的编解码器列表中。您应该对流进行相应的编码。

RTMP仅支持有限数量的编解码器。最受欢迎的RTMP视频编解码器是H264,Sorenson-H263(又名flv)和音频编解码器AAC,MP3,Nellymoser,Speex。如果您的视频是使用这些编解码器编码的(最常见的对是H264 / AAC),则无需进行任何转换。否则,您需要将视频转换为支持的编解码器之一。

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