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?
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?
Yanıtlar:
Bu bilgileri almak için MPlayer'ı kullanabilirsiniz.
$ mplayer -vo null -ao null -identify -frames 0 foo.avi
Özellikle, -identify
seçeneği istersiniz . Seçenek -frames 0
, dosyayı -vo null -ao null
oynatmaması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 grep
belirli ç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)
ffmpeg iyi çalışıyor:
ffmpeg -i file.avi
libav-tools
ve çalıştırmanız gerekebiliravconv -i
ffmpeg -i
İşte aynı şeyi yapan başka bir araç: paketin bir tcprobe
parçası transcode
. -i
Dosyadan 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
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'
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 grep
bit hızından bahseden çizgiyi seçer
grep "bit_rate"
Bundan sed
sonra 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)
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"