FFMPEG Mpeg-DASH 我们需要哪些属性选项和标志才能使 H264 可播放 .mpd 普遍可播放

标签 ffmpeg video-streaming mpeg-dash low-latency dash.js

我想使用 h264 编解码器从任何来源编码为通用可播放的 .mpd。
这是我的命令

/usr/bin/ffmpeg -re -i 1.webm -c:v libx264 -preset ultrafast 
-tune zerolatency -c:a aac -ac 2 -strict -2 -crf 18 -profile:v baseline 
-maxrate 1000k -pix_fmt yuv420p -flags -global_header -streaming 1 
-use_template 1 -use_timeline 0 -seg_duration 2 -remove_at_exit 1 
-f dash index.mpd
但是使用 dash.js 日志说
dash.js videoCodec (video/mp4;codecs="avc1") is not supported.
**额外注意:使用 -c:v libx264 并在 HLS .m3u8 中输出时 --> 它适用于所有浏览器
带有 dash.js 的 HTML
<script src="http://cdn.dashjs.org/latest/dash.all.min.js"></script>
    <center><video width="90%" height="600" id="videoPlayer" controls=""
    src="" playsinline="true" preload="metadata" ></video></center>
    <script>
    (function(){
        var url = "https://www.---domain--path-to.mpd";
        var player = dashjs.MediaPlayer().create();
        player.initialize(document.querySelector("#videoPlayer"), url, true);
player.updateSettings({
            streaming: {
                 lowLatencyEnabled: true, 
                 liveDelay: 4,
                 liveCatchup: {
                    minDrift: 0.02,
                    maxDrift: 0,
                    playbackRate: 0.5,
                    latencyThreshold: 60    
                  }
            }
        });
    })();     
    video = document.getElementById("videoPlayer");
    video.addEventListener("loadedmetadata", function(){ video.muted = true; video.play(); }, false);
    </script>
我确实有“-c:v libx264”但是为什么 dash.js 看到 avc1...我知道 h264 有 avc1,但是如何解决这个问题。是修复 ffmpeg 命令还是更改 player.initialize在 javascript

最佳答案

video/mp4;codecs="avc1"不是有效的编解码器字符串 - 它缺少 SourceBuffer 对此比特流类型所需的配置文件、约束和级别。
发生这种情况是因为您拥有 -flags -global_header放。这导致未设置编解码器额外数据,这反过来意味着 ffmpeg DASH list 生成器无法生成正确的编解码器字符串。
删除 -flags -global_header它应该可以正常工作。

关于FFMPEG Mpeg-DASH 我们需要哪些属性选项和标志才能使 H264 可播放 .mpd 普遍可播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66722810/

相关文章:

download - 给定一个 MPEG DASH .mpd URL,是否可以通过 youtube_dl 关闭所有媒体片段?

ffmpeg - mpeg-dash 工具包,我怎样才能制作这样的视频?

ios - 如何估计实时流视频的带宽/速度要求?

c - 如何使用 FFMpeg 同时收听 2 个传入的 rtsp 流

ffmpeg:多个filter_complex的链,重用中间输出流

iPhone HTTP Streaming .m3u8 和 .ts 文件 - 如何使用 ffmpeg 创建

video - 如何从 h.264 视频流中获取帧率?

video - FFMPEG 拜耳过滤器

ffmpeg - Android MediaPlayer 内部字幕

browser - VideoJS根据浏览器选择来源