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

ffmpeg或MP4box如何将视频转换为通用可播放的Mpeg DASH或HLS

郑胡媚
2023-03-14

将(从webm、rtmp等任何格式)编码为通用hls或dash格式的“好”方法是什么???

我看到大量关于HLS和MPEG-DASH的讨论,视频标签看起来像这样

<video width="90%" height="669" controls > <source src="index.m3u8" type="application/x-mpegURL" > </video>

但FFMPEG中的好命令是什么?

当我这么做的时候

ffmpeg -i file.webm  -acodec aac -vcodec libx264 -movflags faststart -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8

它只能在chrome中播放:(

但我需要它能在safari、firefox、opera等平台上播放

我最近看过关于MP4box的讨论,能将任何源代码转换成通用可播放流的最佳线路是什么?

共有1个答案

微生自怡
2023-03-14

Hi发现了一个经过测试并可以使用的代码

注1;输入可以是https://www.....file.webm ;) webm可以在一台服务器上生成,ffmpeg可以在另一台服务器上生成;)

注2;(未经测试),但似乎FFMPEG可以听IP凸轮以及ffmpeg-rtsp_flags听-i rtsp://own地址/live.sdp

FFMPEG:

ffmpeg -re -v verbose -i "file.webm" -c:v libx264 -c:a aac -ac 1 -strict -2 -crf 18 -profile:v baseline -maxrate 1000k -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 'index.m3u8'

HLS通用可播放HTML;)多亏了hls。jshttps://github.com/video-dev/hls.js/

<html>
<head></head>
<body>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<center><video width="90%" height="600" id="video" controls="" src="https://moctobpltc-i.akamaihd.net/hls/live/571329/eight/playlist.m3u" playsinline="true" ></video></center>
<script>
  var video = document.getElementById("video");
  var videoSrc = "https://moctobpltc-i.akamaihd.net/hls/live/571329/eight/playlist.m3u8";
  if (video.canPlayType("application/vnd.apple.mpegurl")) {
    video.src = videoSrc;
  } else if (Hls.isSupported()) {
    var hls = new Hls();
    hls.loadSource(videoSrc);
    hls.attachMedia(video);
  }
</script>
</body>
</html>

***********它必须在http或最好是https中:因为本地测试不起作用

****另一个注意事项:视频标签中的playsinline=“true”适用于IOS和WKWebview,以避免被迫只能全屏观看

这个. m3u8是一个实时阿卡迈播放列表...

 类似资料:
  • 它是一个后端API(由RubyonRails开发),iphone和android手机使用它上传视频。API正在将上传的视频转换为MP4格式。我在后端使用曲别针ffmpeg gem进行视频转换。以下是我使用的: 我面临的问题有: 当用户从Android手机上传视频时,它在Android手机上运行良好,但在iPhone上无法播放。当用户从iPhone上传视频时,会发生另一件奇怪的事情,视频上传后,它会

  • 我在PCAP文件中捕获了H264流,并试图从数据中创建媒体文件。容器并不重要(avi、mp4、mkv、...)。 当我使用Videosnarf或rtpbref(结合在每个数据包之前添加00 00 00 01的python代码)然后ffmpeg时,只有当输入帧率恒定(或接近恒定)时,结果才OK。但是,当输入为vfr时,结果播放得太快(在同样罕见的情况下太慢)。 例如: videosnarf-我捕捉到

  • 问题内容: 我可以使用或标签播放播放列表并对其进行控制吗? 我的目标是知道视频/歌曲何时播放完毕,然后播放下一个并更改其音量。 问题答案: 您可以像这样在onend事件中加载下一个剪辑

  • 我在另一个论坛上问过这个问题,但从来没有运气。我在网上找到了下面的命令,它应该使用FFMPEG从图像创建一个视频(每个持续时间为5秒)。 FFMPEG-F image2-r 1/5-i img%03d.png-vcodec libx264 out.mp4 编辑:添加命令行输出

  • 在我的网络应用程序中,用户应该能够上传自己的视频(任意一种格式)。我正在使用ffmpeg对视频进行编码。mp4和。flv使用命令: ffmpeg-iuservid.whateveroutput.mp4output.flv 当ffmpeg对视频进行编码时,它会加载到用户页面上的flowplayer中。但flowplayer总是说“找不到文件”,因为ffmpeg编码尚未完成。 是否有可能在某个播放器中

  • 我是一名大学生,现在正在学习FFmpeg。 当我使用这个公式时,我发现一个现象。 1.帧率越高,视频播放速度越快。 2.帧率越慢,视频播放速度越快。 我希望无论帧率是多少,视频播放速度都是合适的。不要太快或太慢。