【问题标题】:FFProbe to Get CodecFFProbe 获取编解码器
【发布时间】:2016-02-15 09:49:32
【问题描述】:

我尝试了许多使用 FFProbe 获取视频编解码器的不同示例,including this one,除了偶尔的 [/STREAM] 之外,无法获得任何输出。

这是我目前正在尝试的

$codec = exec("ffprobe -v error -show_entries -show_streams stream=codec_name {$input['filename']}");

这个也试过了……

$codec = exec("ffprobe -v quiet -print_format json -show_format -show_streams {$input['filename']}");

我知道视频很好,它在 CLI 上运行,因为当我使用以下内容获取持续时间时,我得到了预期的结果

$duration = exec("ffprobe {$input['filename']} -show_format 2>&1 | sed -n 's/duration=//p'");

有什么想法吗?

【问题讨论】:

    标签: php ffmpeg ffprobe


    【解决方案1】:

    想通了。

    $codec = exec("ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 {$input['filename']}");
    

    echo $codec;

    生产

    h264

    【讨论】:

      【解决方案2】:

      来自 timgavin 的精彩回答,谢谢!

      我的要求意味着我需要一些不同的应用程序,我使用了命令提示符:

      set probe="<YOUR PATH>/ffmpeg/bin/ffprobe.exe"
      %probe% -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 input.avi
      

      在这种情况下,返回:

      mpeg4
      

      不确定这是否足以满足我的要求。从我目前的研究来看,HTML5 视频标签是一个记录不充分的标准?

      感谢@llogan 的评论和更多的研究,我决定在视频标签上发布我发现的内容:

      ffmpeg/bin/ffmpeg.exe" -i input.avi -b 1500k -vcodec libx264 "output.mp4"
      

      ffmpeg/bin/ffmpeg.exe -i input.mov -vcodec h264 -acodec aac -strict -2 output.mp4
      

      当然是:

      h264
      

      视频编解码器是唯一受支持的 .mp4 Mime 文件类型的编解码器。本指南可能有用:https://trac.ffmpeg.org/wiki/Encode/H.264

      据我所知,如果浏览器使用的是最新的,它应该支持这些视频 Mime 类型!

      感谢@llogan 的建议,我们不再需要:

      -strict -2
      

      但使用:

      -movflags +faststart
      

      感谢劳埃德的帮助和研究,我现在拥有的是:

      string ffmpeg = "Utils/ffmpeg/ffmpeg.exe";
      string encode = "-y -i \"" + InputFile + "\" -movflags +faststart -vcodec libx264 -crf 22 -acodec aac -b:a 192k \"" + OutputFile + "\"";
      

      其中:OutputFile 是 OutputFile.mp4

      截至:2020 年 6 月 12 日,这是 HTML5 视频标签的良好 ffmpeg 编码。

      【讨论】:

      • mpeg4 是 MPEG-4 Part 2 视频,HTML5 视频不支持。
      • 是的,明白这一点:h264 似乎是,但必须是 .mp4 Mime 类型。
      • 不需要-strict -2,除非您的 ffmpeg 来自 2015 年或更早版本。您可以添加-movflags +faststart,以便更快地开始播放。
      • @llogan 谢谢!我正在寻找文档,但没有看到任何文档。
      猜你喜欢
      • 2019-04-20
      • 2014-03-27
      • 2017-04-02
      • 2017-11-21
      • 2021-09-18
      • 2011-05-08
      • 2021-12-01
      • 1970-01-01
      • 2015-03-03
      相关资源
      最近更新 更多