gpt4 book ai didi

video - 使用 ffmpeg 为 Media Source Extensions API 准备 mp4 视频

转载 作者:行者123 更新时间:2023-12-04 22:55:33 33 4
gpt4 key购买 nike

此命令生成 init.mp4 + 一堆 m4s 文件,我正在尝试使用 MSE 播放它们:

ffmpeg -i <input file> -f hls -hls_segment_type fmp4 -c:v copy playlist.m3u8

这是我正在使用的客户端代码:
var socket = io();
var video = document.querySelector('video');
var mimeCodec = 'video/mp4; codecs="avc1.64000d,mp4a.40.2"';
if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
var mediaSource = new MediaSource;
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
console.error('Unsupported MIME type or codec: ', mimeCodec);
}
function sourceOpen (_) {
var mediaSource = this;
var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
sourceBuffer.mode = 'sequence';
socket.on('broadcast', function (newPiece) {
// here i'm getting the buffer of the video == buffer
sourceBuffer.addEventListener('updateend', function (_) {
video.play().then(function() { }).catch(function(error) { });
});
sourceBuffer.appendBuffer(buffer); // when the seconde video comes i append it's buffer
})
};

当我发送 init.mp4 时一切正常文件后跟 playlist0.m4s, playlist1.m4s, playlist2.m4s, .... .
但是当我尝试玩 init.mp4文件紧随其后的是 6,7,8 而不是 0,1,2 意思是 playlist6.m4s, playlist7.m4s, playlist8.m4s, .... ,它没有工作。
不知道为什么,这应该是直播视频,一开始看直播的观众得到 init.mp4, playlist0.m4s, playlist1.m4s, playlist2.m4s, .... .
5分钟后来的人会得到这样的 init.mp4, playlist32.m4s, playlist33.m4s, playlist34.m4s, ....依此类推,但到目前为止,它仅适用于获得 init.mp4, playlist0.m4s, playlist1.m4s, playlist2.m4s, .... 的查看器.该视频无法为其他人播放

最佳答案

如果可以使用 fMP4而不是 webm ,可以生成一个合适的分片MP4使用以下命令行(面向低延迟):

ffmpeg -i <input file> -c:v libx264 -profile:v main -level 3.2 -pix_fmt yuv420p -b:v <bitrate> -preset medium -tune zerolatency -flags +cgop+low_delay -movflags empty_moov+omit_tfhd_offset+frag_keyframe+default_base_moof+isml -c:a aac <output file.mp4>

请务必使用最新版本。

您仍然需要解析生成的 MP4输出以向 Web 客户端发送带有 moov 的初始化段盒子和成对的 moof+mdat框作为 MSE 播放视频的片段。

关于video - 使用 ffmpeg 为 Media Source Extensions API 准备 mp4 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48588511/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com