使用 RTMP 的 FFMPEG 流式传输

标签 ffmpeg video-streaming red5 rtmp

我正在尝试使用 ffmpeg 创建流以将视频发送到 Red5 服务器。我已经设法使用此命令执行此操作:

ffmpeg -re -y -i "Videos\Video1.mp4" -c:v libx264 -b:v 600k -r 25 -s 640x360 -t 40 -vf yadif -b:a 64k -ac 1 -ar 44100 -f flv "rtmp://192.168.0.12/live/videostream"

我的问题是,当 ffmpeg 完成视频编码时,它会停止流,从而将视频缩短 5-10 秒(对于短视频),但对于较大的视频,情况会变得更糟。

有没有办法阻止这种行为? 我试图在原始视频前后添加一个 10 秒的空白视频,但由于某些编码选项,我总是会丢失音频。这仅适用于短视频,但在较长的视频上问题仍然存在。

有什么建议吗?

最佳答案

我认为在读取源文件末尾后告诉 FFMpeg 保持连接打开是不可能的。您很可能必须使用 Xuggler 或 FFMpeg 的一些自定义修改来完成这样的事情。

关于使用 RTMP 的 FFMPEG 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17936492/

相关文章:

c++ - libavdevice 和 x11 的静态链接库应该以什么顺序链接?

video-streaming - 无法传输 TS 文件

linux - 使用 ffmpeg 将实时视频从树莓派流式传输到 Web 服务器进行分发

flash - 使用闪光灯捕获网络摄像头图像?

maven - 我无法建立red5-hls-plugin

flash - Red5 和 Flash Media Server 有什么区别

php - FFMPEG - 不显示 -vstats

ffmpeg - ffplay - 在不重新编码的情况下改变播放速度

audio - ffmpeg:刷新每个 block 的输出文件

ios - 在 Swift 中从 URL 播放视频