【问题标题】:Playing video with transparency in iOS在 iOS 中以透明方式播放视频
【发布时间】:2020-10-13 18:44:30
【问题描述】:

一点背景知识,我想在网络上播放从 gif 转换为透明的视频,对于所有非苹果设备,我可以轻松地像这样导出 webm 文件

ffmpeg -i test.gif -c:v libvpx-vp9 -qmin 0 -qmax 18 -crf 9 -b:v 1400K -quality good -cpu-used 0 -auto-alt-ref 0 -pix_fmt yuva420p -an -sn -metadata title="test webm" test.webm

不需要加载 HTTP 响应 206 部分内容的视频流,它可以开箱即用

现在,对于 safari 和苹果设备,我遇到了一个完全不同的野兽,我设置了一个端点,通过 HTTP 206 响应为视频提供服务,经过一番努力,我可以在 macOSX 中为 Safari 获得相同的最终结果,并且我像这样转换视频

ffmpeg -i test.gif -qmin 0 -qmax 18 -vcodec prores_ks -q:v 64 -b:v 1400K -pix_fmt yuva444p10le -profile:v 4444 -an -sn -metadata title="test mov" test.mov

我在 url 地址栏中输入了带有流的视频,并且视频播放的透明度都很好。

现在在 iOS 的 Safari 上,视频无法播放,它使用相同的端点加载,其他不透明的视频也可以工作,从相同的流端点提供服务。

有谁知道在所有苹果设备上播放的透明视频的编码解决方案?

我也尝试了手刹但没有成功,实际上手刹甚至无法获得正确的透明度。

【问题讨论】:

    标签: ios iphone ffmpeg safari video-streaming


    【解决方案1】:

    最后,至少在 v13 之前的 iOS 设备根本不允许使用 alpha 通道的 prores 编解码器,因此无法在这些设备上以任何格式播放具有透明度的视频。它与视频流和加载的 HTTP 响应 206 部分内容无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 2011-10-23
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多