关于视频文件的简短摘要(分辨率、大小、持续时间、编解码器)

Jos*_*ine 5 multimedia command-line video media

我现在使用mediainfo

太详细了

$ mediainfo vine.mp4 | wc -l
  66
Run Code Online (Sandbox Code Playgroud)

我希望有一个只有简短摘要的命令。6 行输出。

Joh*_*024 12

首先定义一个shell函数:

shortinfo() { 
   mediainfo --Inform="General;Duration=%Duration/String3%\nFile size=%FileSize/String1%" "$@"
   mediainfo --Inform="Video;Resolution=%Width%x%Height%\nCodec=%CodecID%" "$@"; 
}
Run Code Online (Sandbox Code Playgroud)

现在,在您的视频文件上使用这个 shell 函数。例如:

$ shortinfo sample.mp4
Duration=00:00:10.027
File size=13 MiB
Resolution=1920x1080
Codec=avc1
Run Code Online (Sandbox Code Playgroud)

要使 shell 函数永久化,请将其放在您的~/.bashrc文件中。

这个怎么运作

mediainfo允许自定义输出,但据我所知,自定义输出一次只能来自一个部分(常规、视频、音频)。这导致我们需要两个mediainfo命令。第一个从general类别中选择信息:

mediainfo --Inform="General;Duration=%Duration/String3%\nFile size=%FileSize/String1%" "$@"
Run Code Online (Sandbox Code Playgroud)

第二个从Video类别中选择信息:

mediainfo --Inform="Video;Resolution=%Width%x%Height%\nCodec=%CodecID%" "$@";
Run Code Online (Sandbox Code Playgroud)

如您所见,输出允许我们插入我们喜欢的任何文本,然后使用由百分号包围的字符串替换文件参数,例如%CodecID%. 信息可以放在一条线上,也可以分散在几条线上。要插入换行符,请使用字符串\n

要获取可以放入自定义输出的所有可能文件参数的列表,请运行:

mediainfo --info-parameters | less
Run Code Online (Sandbox Code Playgroud)


小智 5

现在也可以在命令行上:

mediainfo --Output=$'General;File=%FileName%\\nDuration=%Duration/String3%\\nFile size=%FileSize/String1% \nVideo;Resolution=%Width%x%Height%\\nCodec=%CodecID%\\n\\n' *.mkv
Run Code Online (Sandbox Code Playgroud)

注意各部分之间的“\n”

在 Ubuntu 18.04 上测试

MediaInfo 命令行,MediaInfoLib - v17.12