如何从 Linux 中的命令行获取视频的比特率?

Kyl*_*ndt 20 video linux xvid

什么是获取 linux 的 divx 或 xvid avi 文件的视频比特率的好命令行工具?

mou*_*iel 23

ffmpeg 工作正常:

ffmpeg -i file.avi
Run Code Online (Sandbox Code Playgroud)


qua*_*ote 16

您可以使用 MPlayer 来获取该信息。

$ mplayer -vo null -ao null -identify -frames 0 foo.avi
Run Code Online (Sandbox Code Playgroud)

特别是,您需要该-identify选项。该选项-frames 0告诉它不要播放文件,并-vo null -ao null为其提供视频和音频的空驱动程序(因此您可以通过 SSH 或其他非 X 启用的终端使用此命令)。

您可以将其与grep或 其他工具结合使用以拉出您想要的特定行:

$ mplayer -vo null -ao null -identify -frames 0 foo.avi | grep kbps
VIDEO:  [XVID]  512x384  24bpp  29.970 fps  990.9 kbps (121.0 kbyte/s)
Run Code Online (Sandbox Code Playgroud)

完整的输出如下所示:

$ mplayer -vo null -ao null -identify -frames 0 foo.avi
MPlayer dev-SVN-r26940 (C) 2000-2007 MPlayer Team
CPU: [hw dependent]
CPUflags:  [hw dependent]
Compiled with runtime CPU detection.

Playing foo.avi.
AVI file format detected.
ID_VIDEO_ID=0
[aviheader] Video stream found, -vid 0
ID_AUDIO_ID=1
[aviheader] Audio stream found, -aid 1
VIDEO:  [XVID]  512x384  24bpp  29.970 fps  990.9 kbps (121.0 kbyte/s)
Clip info:
 Software: transcode-1.0.2
ID_CLIP_INFO_NAME0=Software
ID_CLIP_INFO_VALUE0=transcode-1.0.2
ID_CLIP_INFO_N=1
ID_FILENAME=foo.avi
ID_DEMUXER=avi
ID_VIDEO_FORMAT=XVID
ID_VIDEO_BITRATE=990928
ID_VIDEO_WIDTH=512
ID_VIDEO_HEIGHT=384
ID_VIDEO_FPS=29.970
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=135104
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
ID_LENGTH=1288.95
ID_SEEKABLE=1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
ID_VIDEO_CODEC=ffodivx
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=2
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [null] 48000Hz 2ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=mp3
Starting playback...

Exiting... (End of file)
Run Code Online (Sandbox Code Playgroud)


sup*_*rty 8

对于视频文件:

通过mediainfo获取准确的视频比特率:
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
或以 Kbps 为单位:
$ mediainfo --Output='Video;%BitRate/String%'

通过mediainfo准确获取音频比特率(以 bps 为单位):
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
或以 Kbps 为单位:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'

对于音频文件:

$ mediainfo --Inform='General;%OverallBitRate%' '/MY/MEDIA/FILE.MP3'
或以 Kbps 为单位:
$ mediainfo --Inform='General;%OverallBitRate/String%' '/MY/MEDIA/FILE.MP3'

--Inform--Output选项的作用与此处相同


小智 6

avprobe -show_streams file.avi
Run Code Online (Sandbox Code Playgroud)