ffmpeg rtsp_transport 到 rtmp 问题

标签 ffmpeg stream rtsp rtmp

我正在开发一个项目,该项目需要从 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 服务器链接

所以这可行,但这是我遇到的问题:
  • 在每个视频的开头,有一个很大的延迟峰值/大量丢帧,然后视频重新同步并正常播放
  • 某些视频会导致 ffmpeg 崩溃,并显示“转换失败”消息,并且在转换/流期间丢失了许多帧。
  • 在每个视频结束时,它会开始滞后/丢帧,就在视频结束附近,换句话说,它不会正常结束,每个视频都以滞后/丢帧结束

  • 我一直在努力让它工作很长时间,现在我终于做到了,我只需要通过处理这两个问题来完善它,如果有人有关于 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/

    相关文章:

    c++ - 应用程序内存使用量减少

    c# - 捕获网络响应流

    ios - 如何使用 iOS8 的 VideoToolbox 解码 live555 rtsp 流 (h.264) MediaSink 数据?

    ffmpeg - 如何根据触发器缓冲和捕获 RTSP 流到磁盘?

    ffmpeg - 为多个图像添加不同的过滤器参数

    macos - chromakey: ffmpeg 绿色视频去除

    javascript - 如何在 Node.js 中有条件地通过管道输出?

    C/String 数据从文件到数组。分段故障

    iphone - 使用 Xcode 4.6.1 在 iOS 6 上进行 RTSP 流式传输

    image-processing - ImageMagick 基于矩形边框颜色裁剪图像