Secara khusus, Anda menginginkan -identifyopsi. Opsi -frames 0memberi tahu untuk tidak memutar file, dan -vo null -ao nullmemberikannya null driver untuk video & audio (sehingga Anda dapat menggunakan perintah ini melalui SSH atau terminal non-X-enabled lainnya).
Anda dapat menggabungkan ini dengan grepatau alat lain untuk menarik garis tertentu yang Anda inginkan:
Beberapa distribusi terbaru (Debian, Ubuntu 14) menjatuhkan ffmpeg dan sebagai gantinya mengirimkan garpu libavnya, jadi Anda mungkin perlu menginstal libav-toolsdan menjalankan avconv -ialih-alihffmpeg -i
bain
Bisakah Anda membimbing saya bahwa apa itu bitrate video menggunakan output sampel berikut? Masukan # 0, flv, dari 'mi-cc-03-bed_and_breakfast.flv': Durasi: 00: 00: 18.7, mulai: 0.000000, bitrate: 64 kb / s Stream # 0.0: Video: flv, yuv420p, 480x360, 29.92 fps (r) Streaming # 0.1: Audio: mp3, 44100 Hz, stereo, 64 kb / s Harus menyediakan setidaknya satu file keluaran
Untuk menunjukkan laju bit keseluruhan, Anda akan lebih baik menggunakan -show_format, atau bahkan lebih baik (di * nix) avprobe -show_format file.avi | grep bit_rate. Sintaks yang sama juga akan berfungsi untuk ffprobe.
evilsoup
2
Berikut alat lain yang melakukan hal yang sama:, tcprobeyang merupakan bagian dari transcodepaket. Gunakan -iswitch untuk mendapatkan info dump dari file (sampel output dari file yang sama seperti pada mplayercontoh):
Dapatkan bitrate video persis melalui mediainfo : $ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
atau dalam Kbps: $ mediainfo --Output='Video;%BitRate/String%'
Dapatkan bitrate audio secara tepat melalui mediainfo dalam bps: $ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
atau dalam Kbps: $ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
Berikut adalah jawaban bash copy-paste menggunakan avprobe (yang datang dengan avconv dan mungkin ffmpeg) jika Anda ingin hanya nomor (untuk skrip lebih lanjut)
function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }
Ini berfungsi seperti ini. Baris ini mendapat info tentang file (menghapus info tambahan di stdout):
avprobe -show_format test.mp4 2> /dev/null
Kemudian greppilih baris yang menyebutkan bitrate
grep "bit_rate"
Dari mana sedkemudian ekstrak bitrate (dalam bits / detik)
sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';
Singkat cerita, salin fungsi di baris pertama dan kemudian Anda bisa melakukannya
$ bitrate test.mp4
593567
(itu bukan video berkualitas tinggi, 593 kb / s, karena bitrate menggunakan 1000, bukannya 1024)
Saya sudah mencoba untuk mendapatkan info yang sama tetapi hanya data untuk menggunakannya dalam bash loop .. dan saya sudah mendapatkannya! Menggunakan FFPROBE!
FFPROBE: hide_banner: sembunyikan info tajuk, loglevel 0 beri kami hanya info yang diperlukan, select_streams tentukan aliran mana (video) yang sedang kami kerjakan, show_entries izinkan kami menentukan data mana yang kami inginkan secara khusus
Jawaban:
Anda dapat menggunakan MPlayer untuk mendapatkan informasi itu.
Secara khusus, Anda menginginkan
-identify
opsi. Opsi-frames 0
memberi tahu untuk tidak memutar file, dan-vo null -ao null
memberikannya null driver untuk video & audio (sehingga Anda dapat menggunakan perintah ini melalui SSH atau terminal non-X-enabled lainnya).Anda dapat menggabungkan ini dengan
grep
atau alat lain untuk menarik garis tertentu yang Anda inginkan:Output lengkapnya terlihat seperti ini:
sumber
ffmpeg berfungsi dengan baik:
sumber
libav-tools
dan menjalankanavconv -i
alih-alihffmpeg -i
sumber
-show_format
, atau bahkan lebih baik (di * nix)avprobe -show_format file.avi | grep bit_rate
. Sintaks yang sama juga akan berfungsi untuk ffprobe.Berikut alat lain yang melakukan hal yang sama:,
tcprobe
yang merupakan bagian daritranscode
paket. Gunakan-i
switch untuk mendapatkan info dump dari file (sampel output dari file yang sama seperti padamplayer
contoh):sumber
Dapatkan bitrate video persis melalui mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
atau dalam Kbps:
$ mediainfo --Output='Video;%BitRate/String%'
Dapatkan bitrate audio secara tepat melalui mediainfo dalam bps:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
atau dalam Kbps:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
sumber
Berikut adalah jawaban bash copy-paste menggunakan avprobe (yang datang dengan avconv dan mungkin ffmpeg) jika Anda ingin hanya nomor (untuk skrip lebih lanjut)
Ini berfungsi seperti ini. Baris ini mendapat info tentang file (menghapus info tambahan di stdout):
Kemudian
grep
pilih baris yang menyebutkan bitrateDari mana
sed
kemudian ekstrak bitrate (dalam bits / detik)Singkat cerita, salin fungsi di baris pertama dan kemudian Anda bisa melakukannya
(itu bukan video berkualitas tinggi, 593 kb / s, karena bitrate menggunakan 1000, bukannya 1024)
sumber
Saya sudah mencoba untuk mendapatkan info yang sama tetapi hanya data untuk menggunakannya dalam bash loop .. dan saya sudah mendapatkannya! Menggunakan FFPROBE!
FFPROBE: hide_banner: sembunyikan info tajuk, loglevel 0 beri kami hanya info yang diperlukan, select_streams tentukan aliran mana (video) yang sedang kami kerjakan, show_entries izinkan kami menentukan data mana yang kami inginkan secara khusus
fer @ FerPC: ~ / Downloads / TEMP $ ffprobe -hide_banner -loglevel 0 -dari datar -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'format = bit_rate'
Anda mendapatkan: format.bit_rate = "1085360"
sumber