我正在尝试将视频流传输到h264
中,因此我可以通过html5
标签在video
页面上播放。我发现了很多示例,这些示例说明了如何将视频文件流传输到rtmp
流中。但是我几乎找不到h264
的示例。
这是我可以找到的唯一示例:
ffmpeg -f dshow -i video="Virtual-Camera" -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -f mpegts udp://10.1.0.102:1234
这似乎符合我的需求。但是我不知道服务器udp://10.1.0.102:1234
是什么类型。
如果它以rtmp://10.1.0.102
开头,那么我知道它是一台rtmp
服务器,并且我必须设置一个nginx
和一个rtmp
模块。但是什么是udp
服务器?我需要做什么来设置一个?
非常感谢。
答案 0 :(得分:0)
UDP://不是这样的流格式,而是告诉您它通过UDP(而不是TCP)提供流。格式实际上是MPEG-TS(您可以从-f mpegts
中看到)
如果您想在普通浏览器中播放它,则需要以其他格式提供它。对于实时视频,实际上并没有一种可以与标记一起使用的普遍支持的格式。 Microsoft Edge和Apple Safari都原生支持HLS,但是Chrome和Firefox都缺乏对实时流格式的任何原生支持。
使用HLS,您可以使用hls.js并在几乎所有浏览器中进行播放。 ffmpeg本身可以output HLS,那么您只需要一个Web服务器即可。
答案 1 :(得分:0)
此ffmpeg命令行允许通过UDP的MPEG2-TS进行流传输。 因此它可以充当实时编码器,对于实时编码器来说,这不是一个坏选择。
因此,您有一个实时编码器,但是要流式传输到网页,还需要一个流式服务器软件,该服务器将摄取(接收)此实时流,并将其转换为HTML5视频标签可播放的格式。该格式可能是WebRTC。
您可以使用Wowza或Unreal Media Server-它们将摄取您的MPEG2-TS流并将其作为WebRTC流输出到网页。