ios 使用FFmpeg从MKV(H.265)多路复用到MP4后的不稳定视频流用于Web播放

wlzqhblo  于 2023-07-01  发布在  iOS
关注(0)|答案(1)|浏览(110)

我在使用FFmpeg将视频文件从MKV格式(用H.265编码)多路复用到MP4格式时遇到了一个问题,特别是用于Web播放。由此产生的视频流看起来不稳定,并且在不同的平台和浏览器上表现出不一致性。
多路复用视频在Google Chrome上完美运行,这表明MP4文件本身不是问题的根本原因。
我知道Firefox本身不支持H.265,所以预计视频不会在该浏览器上播放。
但是,我希望H.265编码的MP4视频与IOS Safari兼容,后者支持H.265 MP4播放。令人惊讶的是,视频缺少IOS Safari。
由于硬件的限制,转码视频不是一个可行的选择,但我确实测试了这一点,似乎然后播放工作正常。
我用这个命令与ffmpeg复用

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

这将生成输出.mp4
在我的html页面我包括这个这个视频像这样

<video src="output.mp4" controls></video>

我还尝试过显式地指定源

<video id="video" controls>
        <source src="output.mp4" type="video/mp4">
    </video>

我将非常感谢任何关于如何解决这个问题的见解或建议,并确保在IOS Safari上稳定播放H. 265编码的MP4视频而不需要转码。

7vux5j2d

7vux5j2d1#

您可以使用Cloudinary解决问题,并确保在iOS Safari上稳定播放H.265编码的MP4视频,而无需转码。首先注册一个Cloudinary帐户。然后使用Cloudinary的API或控制台将H.265编码的MP4视频上传到Cloudinary的媒体库。默认情况下,它将保留原始视频的质量和编码。上传完成后,Cloudinary将自动生成并为您提供不同视频格式和质量的URL。Cloudinary支持自适应流媒体,这意味着它可以根据观众的设备和网络条件以各种格式和质量提供视频。
然后使用CloudinaryURL作为HTML代码中视频元素的源。例如:

<video id="video" controls>
    <source src="YOUR_CLOUDINARY_VIDEO_URL" type="video/mp4">
</video>

Cloudinary的视频播放器和自适应流媒体功能将确保视频以兼容的格式和质量提供给观众的设备,包括iOS Safari。Cloudinary将在幕后处理任何必要的转码或格式转换。
这就是我所做的,以避免手动转码的需要,并确保在不同的平台和浏览器上可靠地播放我的H.265编码的MP4视频。希望它也能为你工作。

相关问题