मैं लिनक्स में कमांड लाइन से वीडियो का बिटरेट कैसे प्राप्त कर सकता हूं?


18

लिनक्स के लिए एक डिवएक्स या एक्सविड एवी फाइल का वीडियो बिटरेट प्राप्त करने के लिए एक अच्छा कमांड लाइन टूल क्या है?


वीडियो चलाने के दौरान ffplayer वर्तमान नाइट्रेट दिखाता है।
बिस्वाप्रियो

जवाबों:


16

आप उस जानकारी को प्राप्त करने के लिए MPlayer का उपयोग कर सकते हैं।

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

विशेष रूप से, आप -identifyविकल्प चाहते हैं । विकल्प -frames 0बताता है कि यह फ़ाइल को प्लेबैक नहीं करता है, और -vo null -ao nullइसे वीडियो और ऑडियो के लिए अशक्त ड्राइवर देता है (ताकि आप एसएसएच या किसी अन्य गैर-एक्स-सक्षम टर्मिनल के माध्यम से इस कमांड का उपयोग कर सकें)।

आप इसे 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)

पूर्ण आउटपुट इस तरह दिखता है:

$ 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 मैनपेज एक बुरा सपना है ...
quixote

अनजान लोगों के लिए, यह अनिवार्य रूप से midentify.sh करता है, स्क्रिप्ट जो जहाज के साथ mplayer करता है।
योना ब्रौन

झंडे को अद्यतन करने की आवश्यकता है। मुझे उबंटू 13.04 में 'अमान्य विकल्प -' ओ 'मिलता है
hnns

17

ffmpeg ठीक काम करता है:

ffmpeg -i file.avi

ffmpeg प्रबल होता है जहाँ mplayer विफल रहता है।
dom0

कुछ हालिया वितरण (डेबियन, उबंटू 14) ने ffmpeg को छोड़ दिया और इसके बजाय अपने लिबाव फोर्क को भेज दिया, इसलिए आपको libav-toolsavconv -iffmpeg -i
बैन

क्या आप कृपया मुझे बता सकते हैं कि नमूना आउटपुट का उपयोग करके वीडियो बिटरेट क्या है? इनपुट # 0, flv, 'mi-cc-03-bed_and_breakfast.flv' से: अवधि: 00: 00: 18.7, प्रारंभ: 0.000000, बिटरेट: 64 kb / s स्ट्रीम # 0.0: वीडियो: flv, yuv420p, 480x360, 29.92 एफपीएस (आर) स्ट्रीम # 0.1: ऑडियो: एमपी 3, 44100 हर्ट्ज, स्टीरियो, 64 केबी / एस को कम से कम एक आउटपुट फाइल की आपूर्ति करनी चाहिए
ज़ैन अली

5
avprobe -show_streams file.avi

1
समग्र बिट दर दिखाने के लिए, आप का उपयोग करना बेहतर होगा -show_format, या इससे भी बेहतर (* निक्स पर) avprobe -show_format file.avi | grep bit_rate। वही सिंटेक्स ffprobe के लिए भी काम करेगा।
evilsoup

2

यहां एक और उपकरण है जो समान कार्य करता है: tcprobeजो transcodeपैकेज का हिस्सा है । -iफ़ाइल से जानकारी डंप प्राप्त करने के लिए स्विच का उपयोग करें ( 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'
या Kbps में:
$ mediainfo --Output='Video;%BitRate/String%'

बिल्कुल bps में मीडिया के माध्यम से ऑडियो बिटरेट प्राप्त करें :
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
या Kbps में:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'


0

यदि आप केवल नंबर चाहते हैं (तो आगे की स्क्रिप्टिंग के लिए) avprobe (जो एवन्कव और शायद ffmpeg के साथ आता है) का उपयोग कर यहां एक कॉपी-पेस्ट बैश उत्तर दिया गया है

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

यह इस तरह काम करता है। इस लाइन को फ़ाइल के बारे में जानकारी मिलती है (stdout पर अतिरिक्त जानकारी को हटाते हुए):

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

फिर grepउस रेखा का चयन करता है जिसमें बिटरेट का उल्लेख है

grep "bit_rate"

जिसमें से sedफिर बिटरेट (बिट्स / सेकंड में) निकालता है

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

लंबी कहानी छोटी, फ़ंक्शन को पहली पंक्ति में कॉपी करें और फिर आप कर सकते हैं

$ bitrate test.mp4
593567

(यह एक उच्च-गुणवत्ता वाला वीडियो नहीं है, 593 kb / s, क्योंकि बिटरेट 1024 के बजाय जाहिरा तौर पर 1000 का उपयोग करता है)


0

मैं एक ही जानकारी प्राप्त करने की कोशिश कर रहा हूँ, लेकिन बस डेटा है कि यह एक पाश पाश में उपयोग करने के लिए .. और मुझे मिल गया है! FFPROBE का उपयोग करना!

FFPROBE: Hide_banner: हेडर की जानकारी छिपाएं, loglevel 0 हमें केवल हमारी आवश्यक जानकारी दें, select_streams निर्दिष्ट करें कि हम किस स्ट्रीम (वीडियो) पर काम कर रहे हैं, show_entries हमें यह निर्दिष्ट करने देती हैं कि कौन सा डेटा विशेष रूप से हम चाहते हैं

fer @ FerPC: ~ / डाउनलोड / TEMP $ ffprobe -hide_banner -loglevel 0 -of फ्लैट -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'प्रारूप = bit_rate'

आपको मिलता है: format.bit_rate = "1085360"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.