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

是否可以使用MPEG-DASH流式传输多帧速率视频?

薛霄
2023-03-14

我将mp4视频转码成若干帧速率,如5FPS、10FPS。。30FPS,并使用MP4Box将其分段,以便在DASH IF播放器中播放。

FFMPEG命令生成具有相同分辨率的多帧视频:

ffmpegfball.mp4-f mp4-vcodec libx264-配置文件: v高-vf刻度=1280:-1-b: v1000k-minate1000k-maxate1000k-bufsize1000k-nal-hrd cbr-g 60-keyint_min60-r 30.0-标志cgop-sc_threshold0-pix_fmtyuv420p-线程0-x264opts keyint=60: min-keyint=60: sps-id=1-an-yfball_720p_30fps.mp4

FFMPEG命令提取音频:

ffmpegfball.mp4-acodec aac-b: a128k-vn-严格-2-yfball_audhtml" target="_blank">io.mp4

用于分割的MP4Box命令:

MP4Box-FRAG2000-DASH2000-rap-baseURL/段/-配置文件主-段名称/段/%s\uu-外破折号/fball\u破折号。mpd fball_720p_24fps。mp4 fball_720p_30fps。mp4 fball_720p_60fps。mp4 fball_音频。mp4

>

  • 片段持续时间:2秒

    GOP长度:片段时长x视频的FPS

    分辨率:所有视频720p

    结果是视频解码错误或切换帧率时暂停。

  • 共有2个答案

    戎俊
    2023-03-14

    MP4Box命令中添加-profile:dashavc264:onDemand,解决了视频解码错误问题。

    MP4Box-dash 2000-rap-profile dashavc264:onDemand-out破折号/fball_破折号。mpd fball_30fps。mp4 fball_60fps。mp4 fball_15fps。mp4 fball_5fps。mp4 fball_音频。mp4

    尉迟安民
    2023-03-14

    在MPEG-DASH中,可以使用具有不同帧率的表示。我认为这不是解码错误的原因。猛冲js和其他基于HTML5/js的播放器正在利用底层浏览器的MSE进行解码。因此,您的编码段很可能不符合浏览器解码引擎的要求或已损坏。

    关于如何使用MP4Box和x264生成MPEG-DASH内容的示例,请参见此处。在这种情况下,还有一些在线服务可用,如Bitmovin或Wowza。

     类似资料:
    • 我想用多比特率创建破折号流,并为它服务。我还想使用dash.js播放器的质量选择器。如图所示:

    • 在android中,有一个名为Exoplayer的库,它与从给定URL流媒体视频有关。 根据这一点,firebase不支持视频流,尽管您可以将uri从url传递到videoview(它实际上会流)。 问题:

    • 我正在发送视频帧的形式的JPEG图像到我的服务器上的RMTP流。在服务器端,我希望将流(ip+端口)连接到ffmpeg,这样它就可以从流中获取图像,并从中创建视频流。 实际上,我的服务器正在监听一个IP和端口来接收帧。这部分完成了。我遇到的问题是如何使用FFMPEG将这些帧转换成视频流。谁能告诉我如何做到这一点吗?我知道是我应该使用的,但我在Google上没有找到它的语法和文档。

    • 我正在尝试提取几个视频上的所有帧。这些视频是在以可变帧速率保存输出的摄像机上拍摄的,因此,一些帧在时间上比其他帧更接近(根据mediainfo,每秒27到30帧) 这些帧将与一些元数据同步,因此我不仅需要提取它们,还需要保留视频每帧拍摄的[相对]时间信息。 我一直在使用ffmpeg来提取视频帧,当视频帧速率不再恒定时,挑战就来了。任何其他不同于ffmpeg的方法或程序都可以完成任务。

    • 我有一些与mpeg PES流(打包)到mpeg TS的复用相关的问题。 为什么DTS和PTS值包含在PES报头中,而PCR值包含在传输流报头中? 如果我们想玩某种方式只是PES流,那么我们没有需要的PCR值来玩呢? 如果PCR是由multplekser(ts头)而不是编码器创建的,那么multplekser如何知道编码流与PTS、DTS的相关性? 谢谢你的回答。

    • 嗨,我有一个视频,它被重新编码成不同的比特率。我还生成了相应的mpd文件。它使用MP4Client进行播放。我使用了以下命令: 但它只为每个比特率生成一个片段。我还想为所有比特率生成相应的段(即段列表)。 任何帮助都会非常有用。