W szczególności chcesz tę -identifyopcję. Ta opcja -frames 0mówi, aby nie odtwarzał pliku, i -vo null -ao nullnadał mu zerowe sterowniki dla obrazu i dźwięku (abyś mógł użyć tego polecenia przez SSH lub inny terminal nie obsługujący X).
Możesz to połączyć z grepinnymi narzędziami, aby wyciągnąć określoną linię:
ffmpeg ma pierwszeństwo w przypadku niepowodzenia mplayera.
dom0
Niektóre najnowsze dystrybucje (Debian, Ubuntu 14) upuściły ffmpeg i zamiast tego dostarczyły swój libav fork, więc może być konieczne zainstalowanie libav-toolsi uruchomienie avconv -izamiastffmpeg -i
bain
Czy możesz mi wskazać, co to jest szybkość transmisji wideo przy użyciu następujących danych wyjściowych? Wejdź # 0, flv, z 'mi-cc-03-bed_and_breakfast.flv': Czas trwania: 00: 00: 18,7, start: 0,000000, przepływność: 64 kb / s Strumień # 0,0: Wideo: flv, yuv420p, 480x360, 29,92 fps (r) Strumień # 0.1: Audio: mp3, 44100 Hz, stereo, 64 kb / s Musi dostarczyć co najmniej jeden plik wyjściowy
Aby pokazać ogólną szybkość transmisji, lepiej byłoby użyć -show_format, a nawet lepiej (na * nix) avprobe -show_format file.avi | grep bit_rate. Ta sama składnia będzie działać również dla ffprobe.
evilsoup
2
Oto kolejne narzędzie, które robi to samo: tcprobektóre jest częścią transcodepakietu. Użyj -iprzełącznika, aby uzyskać zrzut informacji z pliku (przykładowe wyjście z tego samego pliku, co w mplayerprzykładzie):
Uzyskaj dokładnie bitrate wideo za pośrednictwem mediainfo : $ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
lub w Kbps: $ mediainfo --Output='Video;%BitRate/String%'
Uzyskaj dokładnie bitrate audio przez mediainfo w bps: $ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
lub w Kbps: $ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
Oto odpowiedź bash kopiuj-wklej za pomocą avprobe (która jest dostarczana z avconv i być może ffmpeg) na wypadek, gdybyś chciał tylko numer (do dalszego skryptu)
function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }
Działa to w ten sposób. Ta linia pobiera informacje o pliku (usuwanie dodatkowych informacji na stdout):
avprobe -show_format test.mp4 2> /dev/null
Następnie grepwybiera linię, która wspomina bitrate
grep "bit_rate"
Z którego sednastępnie pobiera bitrate (w bitach / sekundę)
sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';
Krótko mówiąc, skopiuj funkcję w pierwszym wierszu i możesz to zrobić
$ bitrate test.mp4
593567
(to nie jest wideo wysokiej jakości, 593 kb / s, ponieważ bitrate z pozoru używa 1000 zamiast 1024)
Próbowałem uzyskać te same informacje, ale tylko te dane, aby użyć ich w pętli bash .. i mam to! Korzystanie z FFPROBE!
FFPROBE: hide_banner: ukryj informacje nagłówka, loglevel 0 daje nam tylko wymagane informacje, select_streams określ, nad którym strumieniem (wideo) pracujemy, show_entries pozwala nam określić, które dane konkretnie chcemy
Odpowiedzi:
Możesz użyć MPlayera, aby uzyskać te informacje.
W szczególności chcesz tę
-identify
opcję. Ta opcja-frames 0
mówi, aby nie odtwarzał pliku, i-vo null -ao null
nadał mu zerowe sterowniki dla obrazu i dźwięku (abyś mógł użyć tego polecenia przez SSH lub inny terminal nie obsługujący X).Możesz to połączyć z
grep
innymi narzędziami, aby wyciągnąć określoną linię:Pełny wynik wygląda następująco:
źródło
ffmpeg działa dobrze:
źródło
libav-tools
i uruchomienieavconv -i
zamiastffmpeg -i
źródło
-show_format
, a nawet lepiej (na * nix)avprobe -show_format file.avi | grep bit_rate
. Ta sama składnia będzie działać również dla ffprobe.Oto kolejne narzędzie, które robi to samo:
tcprobe
które jest częściątranscode
pakietu. Użyj-i
przełącznika, aby uzyskać zrzut informacji z pliku (przykładowe wyjście z tego samego pliku, co wmplayer
przykładzie):źródło
Uzyskaj dokładnie bitrate wideo za pośrednictwem mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
lub w Kbps:
$ mediainfo --Output='Video;%BitRate/String%'
Uzyskaj dokładnie bitrate audio przez mediainfo w bps:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
lub w Kbps:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
źródło
Oto odpowiedź bash kopiuj-wklej za pomocą avprobe (która jest dostarczana z avconv i być może ffmpeg) na wypadek, gdybyś chciał tylko numer (do dalszego skryptu)
Działa to w ten sposób. Ta linia pobiera informacje o pliku (usuwanie dodatkowych informacji na stdout):
Następnie
grep
wybiera linię, która wspomina bitrateZ którego
sed
następnie pobiera bitrate (w bitach / sekundę)Krótko mówiąc, skopiuj funkcję w pierwszym wierszu i możesz to zrobić
(to nie jest wideo wysokiej jakości, 593 kb / s, ponieważ bitrate z pozoru używa 1000 zamiast 1024)
źródło
Próbowałem uzyskać te same informacje, ale tylko te dane, aby użyć ich w pętli bash .. i mam to! Korzystanie z FFPROBE!
FFPROBE: hide_banner: ukryj informacje nagłówka, loglevel 0 daje nam tylko wymagane informacje, select_streams określ, nad którym strumieniem (wideo) pracujemy, show_entries pozwala nam określić, które dane konkretnie chcemy
fer @ FerPC: ~ / Pobieranie / TEMP $ ffprobe -hide_banner -loglevel 0 -of flat -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'format = bit_rate'
otrzymujesz: format.bit_rate = "1085360"
źródło