【问题标题】:ffmpeg pipe to mediainfoffmpeg 管道到 mediainfo
【发布时间】:2018-03-27 01:10:16
【问题描述】:

我需要从 mkv 文件的原始 h264 轨道中获取信息。

前段时间,我把h264原始码流提取出来,自己分析一下。

现在,我想限制磁盘使用,避免提取过程,所以有2个选择:

  • 使用 ffmpeg 将 h264 通过管道传输到 mediainfo

  • 使用某种虚拟磁盘

我试过了

ffmpeg -i original.mkv -map 0:v:0 -c copy -bsf:v h264_mp4toannexb -f h264 - | mediainfo -

但它不返回任何内容

我哪里错了?

【问题讨论】:

    标签: ffmpeg h.264 mediainfo


    【解决方案1】:

    mediainfo(尚)不支持管道(-)。你可能想add a feature request on MediaInfo tracker

    但是...与“mediainfo original.mkv”相比,我看不出你能得到哪种更好的元数据报告,因为 MediaInfo 支持在 MKV 中解析 H264。

    【讨论】:

    • 关键是 mkv 容器可以独立于原始流的值具有可分辨的帧率、dar、start_time(例如,与视频同步);如果在 mkv 容器中设置了帧率,即使原始 264 流具有可变帧率,mediainfo 也会返回恒定帧率
    • MediaInfo 分析 MKV 中的 H264 流,如果容器和流不匹配,则报告两条信息(例如“FrameRate”和“FrameRate_Original”)。
    • 考虑到您的需求,限制磁盘使用的一种方法是仔细检查来自经典“mediainfo original.mkv”的 MediaInfo 报告。帧速率、帧速率模式和 DAR(和其他)经过交叉检查(如果不匹配,则为 2 个值,否则为错误),start_time 仅在容器中可用。
    • 非常感谢您的帮助,但是,如果原始流帧速率是可变的,则 FrameRate_Mode_Original 返回“VFR”,但不返回具有平均数值的 FrameRate_Original。但实际上我正在尝试使用经典的 mediainfo 输出交叉检查原始流数据。我将尝试使用 memoryfs() 作为提取流的 tempdir。谢谢。
    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 2015-11-16
    • 2014-06-11
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2016-01-07
    相关资源
    最近更新 更多