有没有人在这方面有经验?
到目前为止,我已尝试使用ffmpeg(使用libx264和libaacplus)将udp复用到mpegts,但是mpegts muxer显然已被破坏(从几个不同的来源确认) . 我也试过vlc,但它只能编码AAC-LC而不能编码HE-AAC v2(aacplus) .
无论如何,我需要解决的问题是有几个不同的地理位置,覆盖着网络摄像头,我需要udp能够一直有输入流,而不用担心网络起伏(udp只会继续发送数据包时网络再次上升) . 所以,你们有没有使用h264和udp协议的aacplus使用流媒体直播媒体的经验,如果是的话,请你给我任何链接或指示如何完成它 .
非常感谢提前 .
1 回答
我试着分享一些没有的东西和为我做了什么,这些都是基于 ffmpeg 作为服务器(在我的情况下没有音频) .
最初我设置了我的应用程序,以同时将视频录制到文件并将其提供给.ffm文件,以便ffserver使用RTP / UDP对其进行流式传输以进行相机预览 . 该方法的问题恰恰在于当馈送ffmpeg进程停止更改视频文件时,预览将停止并且永远不会恢复,尽管后续的ffmpeg进程已经开始再次提供ffserver . 随着RTP ffserver显然抱怨帧时间戳开始回到0而不是继续停止 . 然后我意识到,如果我能够通过纯UDP发送h264数据包,我将获得与您描述的完全相同的效果,一旦下一个ffmpeg进程接管,预览就会恢复 .
在尝试理解ffmpeg文档时,我也尝试使用mpegts格式,但这样做我在另一端的播放器上获取了MPEG2视频(这显示了一个多播地址,但它也适用于特定目标):
在客户端PC上我能够用 ffplay 观看视频,它确实是MPEG2格式:
VLC 也可以播放流,但只有在指定了开关后--demux ffmpeg(感谢this):
由于我还希望预览在h264中,但我已经对它进行了编码,我尝试使用复制编解码器进行UDP流式传输,但ffmpeg失败并出现了段错误(包含的版本供参考):
虽然不太理想,但为UDP流部分指定格式h264导致第二次并发h264转换,但它有效:
在客户端 ffplay 反复抱怨一些丢失的信息,但几秒后它终于出现了视频,这是好的但有点不稳定:
然后我尝试使用相同的''--demux ffmpeg' ' switch; it also complained about SPS/PPS (don'知道它的内容是 VLC 但最终它播放的视频非常顺利:
我仍在试图找出遗漏的东西,但结果令人满意 . 在VLC播放后,我可以停止播放ffmpeg,当我在另一端重新启动ffmpeg时,播放暂停并立即恢复 .
希望这可以提供任何帮助,如果您有任何关于使用h264作为所选格式代替mpegts的任何其他信息,请告诉我 - 我怀疑这个缺少的SPS / PPS信息可能与它有关 .