【发布时间】:2021-03-22 17:28:03
【问题描述】:
我对视频编码和选项完全陌生,刚刚了解了 Apple 的 HLS 要求。
到目前为止,我已经能够为我的 iOS 应用程序制作一些东西。但是,我发现整个过程非常缓慢且需要手动操作。现在,不得不为更多的语言环境(视频翻译)重复此操作,我无法想象没有更好的方法。
控制比特率
为了控制比特率,我使用 HandBrake 为我想要的每个比特率(192k、400k、1m 等)创建一个具有适当视频编码器设置的新 .mp4 文件。然后,我开始创建播放列表。仅此一项就需要几分钟-有更好的方法吗? tsrecompressor 看起来很接近,但它只是流式传输到本地端口并且不保存任何播放列表。
从 MP4 创建播放列表
然后我使用 Apple 的命令行工具套件(mediafilesegmenter、variantplaylistcreator、mediastreamvalidator、hlsreport)生成播放列表、组合成主播放列表、验证等。我想这部分可以使用脚本稍微自动化。我见过其他人使用 FFMPEG,但我认为后 3 个 Apple 工具仍需要按顺序应用。
你有什么可以明显优化的地方吗?
【问题讨论】:
-
不确定这里的“优化”是什么意思。但是你可以编写一个脚本(handbrake 有一个 CLI 工具)或者只是 ffmpeg 来做所有的事情(互联网上有一百万个例子说明如何做到这一点,你可以搜索它们)。视频转码很慢,除了使用硬件加速器之外你无能为力(同样,谷歌也可以告诉你如何做到这一点)
-
您的最终目标是什么?只是尝试视频压缩?还是您正在尝试构建服务?
-
@szatmary 感谢您的洞察力。由于 Apple 建议使用他们的工具套件,所以我对使用 ffmpeg 犹豫不决,但如果我必须做更多这些,我可能会使用 ffmpeg。很高兴知道视频转码很慢。
-
@SrikanthK。我只是想为我的应用正在服务的视频设置 HLS 流(否则我们将违反 Apple 的要求)。到目前为止,我们只支持两种语言环境,所以我只是采用了这个过程。
标签: ios video ffmpeg video-streaming http-live-streaming