【问题标题】:FFMPEG Extra just codec informationFFMPEG Extra 只是编解码器信息
【发布时间】:2013-06-02 03:58:36
【问题描述】:

我计划将 FFMPeg 与 Java 一起使用,以检测特定的编解码器并将其转换为另一个编解码器。使用 FFMpeg 线 -

    ffprobe -v quiet -print_format json -show_streams "input.avi"

我可以打印出视频的所有流信息,但这包括视频信息、音频信息、所有元数据、所有标签和其他我不需要的信息。

问题:是否可以启动只返回视频编解码器的 FFMpeg 命令,这样我就不必通过不必要的信息挥手?

【问题讨论】:

    标签: java video ffmpeg video-processing


    【解决方案1】:

    简单地greping 字符串怎么样?

    ffprobe -v quiet -show_streams -select_streams v input.avi | grep "codec_name"

    你也可以cut输出并读取纯字符串:

    ffprobe -v quiet -show_streams -select_streams v output.mpg | grep "codec_name" | cut -d= -f 2

    如果您在 Windows 上:

    ffprobe -v quiet -show_streams -select_streams v input.avi | find /i "codec_name"

    【讨论】:

    • 可以在ffprobe中添加-select_streams选项,只输出视频信息。 -select_streams v 将输出所有视频流(如果有多个),-select_streams v:0 将仅输出第一个视频流。有关更多信息,请参阅 stream specifiers-select_streams 上的文档。
    • @EladG - 不幸的是,我不能像在 Windows 上那样 grep,否则那将是完美的。
    • @LordNeckbeard - 我也试过你的建议,但没有任何积极的结果。我有 ffprobe -select_streams v "input.wmv" 行,它打印信息,但我看不到任何关于编解码器的信息。
    • @EladG - 我会快速运行一下。
    • 工作如梦!谢谢帕尔。我欠你一杯啤酒。 @EladG
    【解决方案2】:

    可能有点晚了,这里有一个命令来显示第一个视频流的编解码器名称:

    ffprobe -v quiet \
      -select_streams v:0 \
      -show_entries 'stream=codec_name' \
      -print_format 'default=nk=1:nw=1' INFILE
    

    或者,一个更短的替代方案:

    ffprobe -v quiet \
        -select_streams v:0 \
        -show_entries 'stream=codec_name' \
        -of 'csv=p=0' INFILE
    

    另请参阅http://www.ffmpeg.org/ffprobe.html 上的文档

    【讨论】:

      【解决方案3】:

      这在 Windows/VBScript 上运行良好(是的,需要多个兔子耳朵:

      Set objShell = CreateObject("WScript.Shell")
      
      TheCommand = "cmd /c [PathTo]\ffprobe.exe -v quiet -show_streams -select_streams v ""    [PathTo]\FileName.avi"" | find /i ""codec_name""" 
      
      Set objExec = objShell.Exec(TheCommand)
      
      Do
          retCodec = retCodec & objExec.StdOut.ReadLine()
      Loop While Not objExec.Stdout.atEndOfStream
      
      WScript.Echo(retCodec)
      

      【讨论】:

      • 我目前正在开发一个递归版本,它将通过文件夹结构运行并将结果导出到 CSV 文件。如果有人感兴趣,很高兴分享...作为回报,也许有人可以回答这个问题:我必须将 AVI 转换为 XVID 编解码器,有没有简单的方法可以做到这一点?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 2013-11-24
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-23
      相关资源
      最近更新 更多