В частности, вы хотите -identifyвариант. Опция -frames 0запрещает воспроизведение файла и -vo null -ao nullдает ему нулевые драйверы для видео и аудио (так что вы можете использовать эту команду через SSH или другой терминал без поддержки X).
Вы можете комбинировать это с grepдругими инструментами, чтобы выделить нужную строку:
В некоторых последних дистрибутивах (Debian, Ubuntu 14) упал ffmpeg, и вместо этого он отправил свой libav форк, поэтому вам может потребоваться установить libav-toolsи запустить avconv -iвместо негоffmpeg -i
bain
Можете ли вы указать мне, что такое битрейт видео, используя следующий пример вывода? Вход # 0, flv, из 'mi-cc-03-bed_and_breakfast.flv': Длительность: 00: 00: 18.7, начало: 0,000000, битрейт: 64 кбит / с Поток # 0.0: Видео: flv, yuv420p, 480x360, 29,92 fps (r) Поток # 0.1: Аудио: mp3, 44100 Гц, стерео, 64 кбит / с. Должен предоставить как минимум один выходной файл
Чтобы показать общую скорость передачи данных, вам лучше использовать -show_formatили даже лучше (на * nix) avprobe -show_format file.avi | grep bit_rate. Тот же синтаксис также будет работать для ffprobe.
evilsoup
2
Вот еще один инструмент, который делает то же самое: tcprobeэто часть transcodeпакета. Используйте -iпереключатель, чтобы получить информационный дамп из файла (пример вывода из того же файла, что и в mplayerпримере):
Получить именно битрейт видео через mediainfo : $ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
или в кбит / с: $ mediainfo --Output='Video;%BitRate/String%'
Получить именно аудио битрейт через mediainfo в бит / с: $ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
или в кбит / с: $ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
Вот ответ bash с копированием-вставкой с использованием avprobe (который поставляется с avconv и, возможно, 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 кбит / с, поскольку битрейт, по-видимому, использует 1000 вместо 1024)
Я пытался получить ту же информацию, но только эти данные, чтобы использовать ее в цикле bash ... и я понял! Используя FFPROBE!
FFPROBE: hide_banner: скрыть информацию заголовка, уровень логики 0 дает нам только необходимую информацию, select_streams указывает, над каким потоком (видео) мы работаем, show_entries позволяет нам указать, какие именно данные нам нужны
Ответы:
Вы можете использовать MPlayer для получения этой информации.
В частности, вы хотите
-identify
вариант. Опция-frames 0
запрещает воспроизведение файла и-vo null -ao null
дает ему нулевые драйверы для видео и аудио (так что вы можете использовать эту команду через SSH или другой терминал без поддержки X).Вы можете комбинировать это с
grep
другими инструментами, чтобы выделить нужную строку:Полный вывод выглядит так:
источник
ffmpeg работает нормально:
источник
libav-tools
и запуститьavconv -i
вместо негоffmpeg -i
источник
-show_format
или даже лучше (на * nix)avprobe -show_format file.avi | grep bit_rate
. Тот же синтаксис также будет работать для ffprobe.Вот еще один инструмент, который делает то же самое:
tcprobe
это частьtranscode
пакета. Используйте-i
переключатель, чтобы получить информационный дамп из файла (пример вывода из того же файла, что и вmplayer
примере):источник
Получить именно битрейт видео через mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
или в кбит / с:
$ mediainfo --Output='Video;%BitRate/String%'
Получить именно аудио битрейт через mediainfo в бит / с:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
или в кбит / с:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
источник
Вот ответ bash с копированием-вставкой с использованием avprobe (который поставляется с avconv и, возможно, ffmpeg), если вам нужен только номер (для дальнейшего написания сценариев)
Это работает так. Эта строка получает информацию о файле (удаляя дополнительную информацию о stdout):
Затем
grep
выбирает строку, которая упоминает битрейтИз которого
sed
затем извлекается битрейт (в битах / секунду)Короче говоря, скопируйте функцию в первой строке, а затем вы можете сделать
(это не высококачественное видео, 593 кбит / с, поскольку битрейт, по-видимому, использует 1000 вместо 1024)
источник
Я пытался получить ту же информацию, но только эти данные, чтобы использовать ее в цикле bash ... и я понял! Используя FFPROBE!
FFPROBE: hide_banner: скрыть информацию заголовка, уровень логики 0 дает нам только необходимую информацию, select_streams указывает, над каким потоком (видео) мы работаем, show_entries позволяет нам указать, какие именно данные нам нужны
fer @ FerPC: ~ / Downloads / TEMP $ ffprobe -hide_banner -loglevel 0 -плоского -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'format = bit_rate'
вы получите: format.bit_rate = "1085360"
источник