ffmpeg额外的just编解码器信息

r7knjye2  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(409)

我计划使用ffmpeg和java,检测一个特定的编解码器并将其转换为另一个。使用ffmpeg行-

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

我可以打印出所有的流信息的视频,但这包括视频信息,音频信息,所有的元数据,所有的标签和其他信息,我只是不需要。
问:是否可以启动一个只返回视频编解码器的ffmpeg命令,这样我就不必浏览不必要的信息了?

ryoqjall

ryoqjall1#

这在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)
qq24tv8q

qq24tv8q2#

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

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

hsvhsicv

hsvhsicv3#

把绳子弄成灰色怎么样? 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"

相关问题