我正在开发一个项目,该项目需要从 youtube 获取 rtsp 链接,并使用 ffmpeg 将这些视频流式传输到 rtmp 服务器。我的解决方案有效,但存在一些问题。
我正在使用这些设置:
-max_delay 0 -initial_pause 0 -rtsp_transport udp -i " + inputLink + " -vcodec libx264 -acodec mp3 -ab 48k -bit_rate 450 -r 25 -s 640x480 -f flv " + stream
inputLink 替换为 rtsp 链接,stream 替换为 rtmp 服务器链接
所以这可行,但这是我遇到的问题:
我一直在努力让它工作很长时间,现在我终于做到了,我只需要通过处理这两个问题来完善它,如果有人有关于 rtsp_transport 协议(protocol)的有用信息以及如何使其流式传输没有问题,我将不胜感激。谢谢!
最佳答案
你有一些设置错误。-bit_rate 450
: 你要求每秒 450 比特,难怪它丢了很多帧!应该是450k。
如果您想要 450 kbps 的流,请使用 -ab 48k -vb 402k
, 其中 402 = 450 - 48
.
视频 格式仅支持某些音频速率。您还需要使用 -ar
具有以下值之一:44100、22050 或 11025。ffmpeg -i rtsp://... -c:v libx264 -c:a mp3 -ab 48k -ar 44100 -vb 402k -r 25 -s 640x480 -f flv test.flv
关于ffmpeg rtsp_transport 到 rtmp 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29066588/