【问题标题】:Detect if "faststart" has been applied to video检测“快速启动”是否已应用于视频
【发布时间】:2017-10-24 01:59:34
【问题描述】:

在 MP4 上运行“qt-faststart”时,您实际上是从后面获取元数据并将其放在文件的前面。在我的情况下,Flash 可以在视频完全加载之前正确开始播放。

我有大量视频,我通过一个 shell 脚本运行以在一夜之间进行编码。但是,当我上传时,我不一定知道在我的最终视频文件夹(在服务器上)中运行了“qt-faststart”。

我的目标是找到散乱的视频并手动对其运行 qt-faststart,但我需要一种方法来编译列表。有没有办法用 PHP 或其他方法检查这个元数据信息?想知道如何判断一个视频是否已经运行了 qt-faststart。

【问题讨论】:

    标签: video ffmpeg


    【解决方案1】:
    mediainfo -f file.mp4 | grep IsStreamable
    

    ffprobe  -v debug file.mp4  2>&1 | grep seeks 
    

    【讨论】:

    • 对于 ffprobe 命令,我们在输出中具体寻找什么?我们如何知道是否启用了快速启动?
    • 无论moov数据是在开头还是结尾,它总是找到seeks。具体应该寻求什么?寻求=0?寻求=1?寻求=2?这些数字究竟意味着什么?
    • @jsherk "0 seeks" == "faststart", 如果你必须搜索到文件末尾来获取索引,如果流不可搜索,你必须读取整个文件,这将与仅读取索引相比要慢(通常
    【解决方案2】:

    多次运行 qt-faststart 应该没有任何害处,第二次将是空操作。所以最简单的解决方案是始终运行 qt-faststart。

    为了更精确的控制,我会使用 qt-faststart 的 Python 翻译:https://github.com/danielgtaylor/qtfaststart

    它具有检查 MP4 文件中原子的功能,使用它们来确定是否需要重新排序应该不难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2014-02-16
      • 2016-12-16
      • 2016-05-31
      • 2019-08-19
      • 2022-12-01
      • 2021-01-12
      相关资源
      最近更新 更多