在HTML视频标签中流式传输实时视频流

审查员

我想将来自udp的实时视频流传输到HTMLvideo标签中。我进行了一些研究,但是我获得了很多信息,因此我很难清楚地了解我可以做什么和不能做什么。

视频流使用H.264和AAC编解码器,MP4容器,并具有3840x2160(4K)分辨率。我想在Chrome(最新版本)上播放。

据我了解,HTMLvideo标签可以本地读取H.264 / AAC视频。我将其与服务器上的视频分辨率结合使用(我正在使用Meteor JS + React)。

我学会了使用FFmpeg来流式传输VLC播放器读取的udp流量,然后使用FFserver(我知道它已被弃用)创建一个HTTP流量,该流量也可以由VLC读取,但不能由HTMLvideo标记读取

所以...我的问题是:HTML是否video可以从HTTP本地读取视频流?

我已经看到了很多有关HLS和DASH的讨论,但是我不明白它们是否(以及为什么)是强制性的。

我读了一篇有关某人m3u8仅使用FFmpeg创建HLS的帖子,这是可行的解决方案吗?

FFserver配置

HTTPPort                        8090
HTTPBindAddress                 0.0.0.0
MaxHTTPConnections              20
MaxClients                      10
MaxBandwidth                    100000

<Feed feed.ffm>
  File                          /tmp/feed.ffm
  FileMaxSize                   1g
  ACL allow                     127.0.0.1
</Feed>

<Stream stream.mpeg>
  Feed                          feed.ffm
  Format                        mpeg
  AudioCodec                    aac
  AudioBitRate                  256
  AudioChannels                 1
  VideoCodec                    libx264
  VideoBitRate                  10000      // Total random here
  VideoBitRateRange             5000-15000 // And here...
  VideoFrameRate                30
  VideoQMin                     1
  VideoQMax                     50
  VideoSize                     3840x2160
  VideoBufferSize               20000      // Not sure either
  AVOptionVideo                 flags +global_header
</Stream>

我必须指定QMin和QMax以避免出现错误消息,但我不太了解它是什么。

FFmpeg命令行

ffmpeg -re -i bbb_sunflower_2160p_30fps_normal.mp4 -strict -2 -r 30 -vcodec libx264 http://localhost:8090/feed.ffm

与VLC一起使用。在移至udp流之前,我正在使用计算机上的文件。

米克

浏览器上的媒体支持是一个不断变化的格局,因此值得在某些地方查找最新视图。

根据我的经验,此链接上的表通常是最新的:

您会注意到该表包括编解码器和容器-mp4中的egh264。了解这一点很重要,因为您的浏览器可能支持编解码器,但所需的容器中不支持。

对于受支持的容器和编解码器,HTML5标签将支持HTTP流或更准确地说是HTTP下载。大多数服务器和浏览器将支持分块下载视频文件,以便您可以在完全下载视频之前开始观看。

为了在不同设备类型和不同网络条件下获得更好的性能,通常通过可调整比特率(ABR)协议(例如HLS或DASH)交付视频。ABR还允许客户端设备或播放器以大块(例如10秒大块)的形式下载视频,但是服务器以多个不同的比特率版本提供每个大块。播放器可以从最适合当前网络条件的比特率中选择下一个块。还可以在此答案中查看更多信息:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Sharepoint 3.0中流式传输视频

如何在Laravel中流式传输视频

在VLC中流式传输时保存视频

如何从URL流式传输实时视频?

使用MediaSource在React组件中流式传输视频文件

如何在h264中流式传输视频?

如何在 Flask 中流式传输大视频

如何在Roku频道中流式传输Youtube视频?

我想将实时h264视频流式传输为HTML5视频标签,我需要哪种标题和容器?

如何为html5视频标签流式传输视频文件

流式传输灰度视频

如何从 DJI Professional 3 相机流式传输实时视频?

如何从iOS中的相机流式传输实时视频

网页上的实时视频编码和流式传输

agora 和 mux 和有什么不一样?在 Flutter 中流式传输实时视频的最佳方式是什么?

在Android中流式传输视频时如何捕获VideoView的屏幕截图

在asp.net core 2中流式传输视频文件

关于如何在Android中流式传输M3U8视频的任何想法

有没有一种方法可以在本机中流式传输视频?

从数据库在asp.net Web API中流式传输视频

有没有办法在 python tkinter 窗口中流式传输在线视频?

使用FFmpeg将视频实时流式传输到YouTube时,将视频保存到SD卡

如何从 Facebook 流式传输视频

如何从ServiceWorker流式传输视频?

在VideoView上流式传输视频

检查视频是否在流式传输

Unity:实时视频流

如何确定每种 Youtube 视频质量中流畅流式传输所需的最低理论互联网速度?

只有在流式传输Mac屏幕时才能预览Facebook实时视频