当前位置: 首页 > 知识库问答 >
问题:

h264实时视频流

全彬
2023-03-14
c++ app | ffmpeg | server | html5 client

应用程序创建的h264帧被发送到标准输出,在标准输出中,使用ffmpeg将该流重新复用为mp4,并将其传递给服务器,服务器根据请求将其传递给客户端。

这是个好办法吗?这甚至可能创建一个低延迟30fps视频流使用这种方法?

共有1个答案

何琨
2023-03-14

是的。这是一个正确的方法和可能做的事情。

安装Unreal Media Server并按http://umediaserver.net/umediaserver/faq.html执行从ffmpeg到Unreal Media Server的RTMP发布

然后,虚幻HTML5播放器将近乎实时地播放该流,请参见http://umediaserver.net/umediaserver/demos.html的示例

 类似资料:
  • 我现在正在Android上对一个h264字节流进行解码。流是从第三方产品发送的,我不太确定它的视频格式。该文件说,流由PPS和SPS NAL单位组成。但我接收到的h264字节流包括以0x00、0x00、0x00、0x01开头的序列,并且在我接收到的样本中,第5个字节可能是0x09、0x21或0x06。这让我兴奋了一段时间,因为它似乎与通常的0x67或0x68指示器不同。有人知道NAL单元头中的0x

  • 我在使用javascript MediaSource扩展API播放H264视频时遇到问题。 我将在下面详细描述这个场景。 我已经成功地实现了播放vp8、vp9、opus和vobis编解码器的音频和视频源的结果,也来自范围请求(如果服务器有能力,使用任何字节范围)或分块文件,使用shaka打包器完成的块。 当源是H264视频时,问题就来了,在我的例子中,详细的编解码器是avc1.64001e和mp4

  • 我可以看到视频播放在我的TextureView,但它是相当腐败。我已经验证了我正在以正确的顺序接收完整的数据包。我已经能够正确解析RTP头。我相信我的问题与SPS和PPS以及MediaCodec有关。 正如您所看到的,我没有从我的视频流中为MediaFormat提供SPS和PPS,而是使用了一个internet示例中的硬编码集。我试图找到解释如何从数据包中提取SPS和PPS的源,但没有找到任何东西

  • 我正在使用NvEnc对实时H264流进行编码,并尝试通过RTP将其作为“直播”(实际上是多播)发送。到目前为止,一切都很好,将h264转储到磁盘,甚至将flv写入磁盘进行调试都很好。使用MPlayer观看流时,发送原始UDP流也同样有效。至于流本身,它使用LOW_LATENCY预设,我只生成I和P帧(强制每60帧插入一个I帧,以及SPS/PPS)。NAL单元的创建也小于MTU-Size减去RTP标

  • 我正在开发一个通过RTP接收H264编码数据的应用程序,但我无法让Android的MediaCodec输出任何内容。我正在按照https://stackoverflow.com/a/7668578/10788248对RTP数据包进行解包 在编码帧被重新组装后,我将它们输入到出列的输入缓冲区中。 当我对输入缓冲区进行排队时,我不会得到任何错误,但是解码器的回调从来不会调用onOutputBuffer

  • 我正在尝试使用c中的ffmpeg将视频文件解复用到视频部分(h264、mpeg4、h265、vp8等)和音频部分(mp3、aac、ac3等)以及字幕部分(srt)中。 音频部分很好,并在我所有的媒体播放器上播放,字幕部分也一样。然而,视频部分没有出现错误,并保存到了。h264文件,但当我使用ffprobe检查它或ffplay播放它时,它总是给出错误“处理输入时发现无效数据”。 下面的代码 编辑2我