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

为MediaSource API将FFMPEG编码为MPEG-DASH或WebM

毛弘博
2023-03-14

我目前正在发送一个视频流到Chrome,通过MediaSource API播放。

有什么方法可以实时地用FFMPEG编码成MPEG-DASH或关键帧WebM格式吗?

编辑:

我只是用ffmpeg...-f webm-vcodec vp8-g1尝试了一下,这样每个帧都是一个关键帧。不是理想的解决方案。不过,它现在确实适用于纵隔。在WebM中,有什么方法可以将段与关键帧同步,这样就不需要每个帧都是关键帧了?

MediaSource API和mp4

共有1个答案

东方新霁
2023-03-14

目前FFMPEG不支持破折号编码。您可以使用FFMPEG进行分段(https://www.FFMPEG.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment),但我建议结合使用FFMPEG和MP4Box。使用FFMPEG对现场视频进行代码转换,然后使用MP4Box进行分割并创建。mpd索引。

MP4Box是GPAC(http://GPAC.wp.mines-telecom.fr/)的一部分。

下面是一个使用H264的示例:

ffmpeg -threads 4 -f v4l2 -i  /dev/video0 -acodec libfaac -ar 44100 -ab 128k -ac 2 -vcodec libx264 -r 30 -s 1280x720  -f mp4 -y "$movie" > temp1.mp4 && MP4Box -dash 10000 -frag 1000 -rap "$movie"

如果需要VP8(WebM),请使用:-vcodec libvpx-f WebM-f ts

 类似资料:
  • 我想把一个MP4文件转换成一个MPEG-DASH视频,可以通过Chrome上的Dash-if HTML5播放器播放。我使用FFMPEG和MP4Box(来自GPAC)对视频进行转码,然后对其进行拆分,并在JavaScript控制台上不断得到一个MEDIA_ERR_SRC_NOT_SUPPORTED错误。 从网上提供的(非常稀疏的)信息(请参见此Chromium线程)来看,Chrome似乎只支持带有约

  • 将(从webm、rtmp等任何格式)编码为通用hls或dash格式的“好”方法是什么??? 我看到大量关于HLS和MPEG-DASH的讨论,视频标签看起来像这样 但FFMPEG中的好命令是什么? 当我这么做的时候 它只能在chrome中播放:( 但我需要它能在safari、firefox、opera等平台上播放 我最近看过关于MP4box的讨论,能将任何源代码转换成通用可播放流的最佳线路是什么?

  • 我有HLS的直播[https://82-80-192-30.vidnt.com/ipbc_IPBCchannel11LVMRepeat/definst/IPBCchannel11LVM_3.stream/playlist.m3u8]我想把它转换成MPEG-DASH。 最佳实践是什么? 流已经是h264 aac,因此我知道我不需要重新编码,我只需要转换。 我应该用什么?ffmpeg?mp4box?

  • 我知道使用,我们可以创建MPEG-DASH就绪文件,包括段和. mpd清单文件。例如,我正在尝试这个有效的命令: 但我不想分割视频,所以我们有一个更简单的版本,整个视频有多个版本,没有块。MPEG-DASH允许吗?如果是这样的话,我如何使用在不创建块的情况下完成它?

  • 我一直试图实现一个像丛一样的视频播放器,它可以按需转换任意视频文件,并在网页上用MPEG-Dash播放它。我能够使用引用实现来实现客户端播放器,因此它将动态地从服务器请求片段(在mpd文件中使用)。 但是我在实时生成这些块时遇到了一些问题。Ffmpeg允许我设置和来定义所需片段的边界,但是它们不能在播放机中正常播放,因为它们是“完整”视频文件,而不是破折号片段。 那么,我如何调整我的ffmpeg命

  • 需要调试段划线文件的帮助吗 输入是带有这些细节的MP4。这是从摄像机录制的,摄像机的输出是mkv,我们通过adobe编辑音频后转换为MP4 大小:7.51 GB帧率:25帧/秒 数据速率:25326kbps 总比特率:25525kbps 使用此命令将其转换为另一个mp4 输出视频已被删除 fps:25 数据速率:761kbps 比特率:761kbps 然后,通过MP4Box创建了分段破折号 生成的