我想在特定的视频编解码器(例如 x265 高效视频编解码器)上标准化我的视频收藏。我知道我可以使用例如“mediainfo filename |”从单个文件获取正在使用的编解码器。grep "Codec ID"' 这将输出每个文件的视频编解码器,后跟音频编解码器,例如:
Codec ID : V_VP8
Codec ID : A_VORBIS
Run Code Online (Sandbox Code Playgroud)
我已经审查过man find,但我似乎不知道如何实现这一点。有任何想法吗?
find, ffprobe,实用程序的组合jq可用于打印有关未使用视频编解码器编码的所有*.avi,文件(递归地在当前目录树中)的信息:*.mp4"h264"
$ find -name \*.avi -o -name \*.mp4 \
-exec ffprobe -v quiet -show_streams -show_format -of json {} \; |
jq -c '.format.filename as $path |
.streams[]? |
select(.codec_type=="video" and .codec_name!="h264") |
{codec: .codec_name, path: $path}'
Run Code Online (Sandbox Code Playgroud)
要安装实用程序,请运行:
$ sudo apt-get install ffmpeg jq findutils
Run Code Online (Sandbox Code Playgroud)
该示例适用于jq 1.4. 如果apt-get版本提供旧版本;您可以下载更新的jq二进制文件(只需将下载的文件放在 中的某个位置$PATH,将其重命名为jq并使其可执行chmod +x jq:)。