Bir videonun bit hızını Linux'ta bir komut satırından nasıl edinebilirim?


18

Linux için bir divx veya xvid avi dosyasının video bit hızını almak için iyi bir komut satırı aracı nedir?


ffplayer video oynatırken geçerli nitratı gösterir.
Biswapriyo

Yanıtlar:


16

Bu bilgileri almak için MPlayer'ı kullanabilirsiniz.

$ mplayer -vo null -ao null -identify -frames 0 foo.avi

Özellikle, -identifyseçeneği istersiniz . Seçenek -frames 0, dosyayı -vo null -ao nulloynatmamasını ve video ve ses için boş sürücüler vermesini söyler (böylece bu komutu SSH veya X etkin olmayan başka bir terminal aracılığıyla kullanabilirsiniz).

İstediğiniz grepbelirli çizgiyi çıkarmak için bunu veya diğer araçlarla birleştirebilirsiniz :

$ 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)

Tam çıktı şu şekilde görünür:

$ 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)

1
ps. mplayer manpage bir kabus ...
quack quixote

Bu habersiz olanlar için, midentify.sh'ın yaptığı, mplayer ile birlikte gelen komut dosyasıdır.
Jonah Braun

Bayrakların güncellenmesi gerekiyor. Ubuntu
13.04'te

17

ffmpeg iyi çalışıyor:

ffmpeg -i file.avi

ffmpeg, mplayer'ın başarısız olduğu yerde geçerlidir.
dom0

Bazı yeni dağıtımlar (Debian, Ubuntu 14) ffmpeg'i düşürdü ve bunun yerine libav çatalını gönderdi, bu yüzden yerine yüklemeniz libav-toolsve çalıştırmanız gerekebiliravconv -iffmpeg -i
bain

Aşağıdaki örnek çıktıyı kullanarak video bit hızının ne olduğunu bana yönlendirebilir misiniz? Giriş # 0, flv, 'mi-cc-03-bed_and_breakfast.flv' adresinden: Süre: 00: 00: 18.7, başlangıç: 0.000000, bit hızı: 64 kb / s Akış # 0.0: Video: flv, yuv420p, 480x360, 29.92 fps (r) Akış # 0.1: Ses: mp3, 44100 Hz, stereo, 64 kb / s En az bir çıktı dosyası sağlamalıdır
Zain Ali

5
avprobe -show_streams file.avi

1
Toplam bit hızını göstermek için kullanmaktan daha iyi -show_format, hatta daha iyi (on * nix) avprobe -show_format file.avi | grep bit_rate. Aynı sözdizimi ffprobe için de çalışır.
evilsoup

2

İşte aynı şeyi yapan başka bir araç: paketin bir tcprobeparçası transcode. -iDosyadan bilgi dökümü almak için anahtarı kullanın (örnekle aynı dosyadan örnek çıktı mplayer):

$ tcprobe -i foo.avi
[tcprobe] RIFF data, AVI video
[avilib] V: 29.970 fps, codec=XVID, frames=38630, width=512, height=384
[avilib] A: 48000 Hz, format=0x55, bits=16, channels=2, bitrate=128 kbps,
[avilib]    53707 chunks, 21768720 bytes, VBR
[tcprobe] summary for foo.avi, (*) = not default, 0 = not detected
import frame size: -g 512x384 [720x576] (*)
       frame rate: -f 29.970 [25.000] frc=4 (*)
      audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x55 [0x2000] (*)
                   bitrate=128 kbps
           length: 38630 frames, frame_time=33 msec, duration=0:21:28.954

2

Mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
veya Kbps ile tam olarak video bit hızını alın :
$ mediainfo --Output='Video;%BitRate/String%'

Ses bit hızını mediainfo üzerinden bps:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
veya Kbps olarak alın:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'


0

Burada, yalnızca sayıyı istemeniz durumunda avprobe (avconv ve belki ffmpeg ile birlikte gelir) kullanarak bir kopyala yapıştır bash yanıtı (daha fazla komut dosyası için)

function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }

Bu şekilde çalışır. Bu satır dosya hakkında bilgi alır (stdout'ta fazladan bilgi kaldırılır):

avprobe -show_format test.mp4 2> /dev/null

Sonra grepbit hızından bahseden çizgiyi seçer

grep "bit_rate"

Bundan sedsonra bit hızını çıkarır (bit / saniye olarak)

sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';

Uzun öykü kısa, ilk satırdaki işlevi kopyalayın ve sonra yapabilirsiniz

$ bitrate test.mp4
593567

(bu yüksek kaliteli bir video değil, 593 kb / s, çünkü bit hızı görünüşte 1024 yerine 1000 kullanıyor)


0

Ben aynı bilgi almaya çalışıyorum ama sadece bu veri bash döngü kullanmak için .. ve anladım! FFPROBE Kullanımı!

FFPROBE: hide_banner: başlık bilgisini gizle, loglevel 0 bize sadece gerekli bilgilerimizi verir, select_streams hangi akışta (video) üzerinde çalıştığımızı belirtir, show_entries hangi verileri istediğimizi belirtmemize izin verir

fer @ FerPC: ~ / İndirilenler / TEMP $ ffprobe -hide_banner -loglevel 0 -çevrimiçi -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'formatı = bit_rate'

şunu alırsınız: format.bit_rate = "1085360"

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.