MediaInfo
mediainfo --Inform="Video;%Codec%" video.mkv
будет мой случай возвращения:
V_MPEG4/ISO/AVC
Ответ стало возможным благодаря How to find duration of a video file using mediainfo in seconds or other formats?
ffprobe (FFmpeg) простой способ
Предполагая, что ваше видео имеет один только видеопоток:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \
-of default=noprint_wrappers=1:nokey=1 video.mkv
Будет ли в моем случае возвращения:
h264
Ответ стало возможным благодаря How to get video duration in seconds?
ffprobe (FFmpeg) грязный способ
Этот метод проще понять, но грязный.
Чтобы получить информацию о кодеке без воспроизведения файла, используйте ffprobe
.
$ ffprobe video.mkv
[...]
Input #0, matroska,webm, from 'video.mkv':
Metadata:
ENCODER : Lavf56.25.101
Duration: 00:28:05.15, start: 0.000000, bitrate: 4353 kb/s
Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 1280x960, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
Metadata:
ENCODER : Lavc56.26.100 libx264
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
Metadata:
ENCODER : Lavc56.26.100 libvorbis
Для извлечения информации видеокодека - с FFmpeg посылает информацию в поток ошибок - pipe и Grep его:
$ ffprobe video.mkv 2>&1 >/dev/null | grep Stream.*Video
Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 1280x960, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
Чтобы уменьшить это еще дальше, ввести СЕПГ:
$ ffprobe video.mkv 2>&1 >/dev/null |grep Stream.*Video | sed -e 's/.*Video: //' -e 's/[, ].*//'
h264
Невозможно воспроизвести. ffmpeg-0.5-5.20091026svn.fc12.x86_64 –