En particulier, vous voulez l' -identifyoption. L'option lui -frames 0dit de ne pas lire le fichier et de -vo null -ao nulllui donner des pilotes nuls pour la vidéo et l'audio (vous pouvez donc utiliser cette commande via SSH ou un autre terminal non compatible X).
Vous pouvez combiner cela avec grepou d'autres outils pour extraire la ligne spécifique que vous souhaitez:
Certaines distributions récentes (Debian, Ubuntu 14) ont abandonné ffmpeg et ont plutôt expédié sa fourche libav, vous devrez donc peut-être installer libav-toolset exécuter avconv -iau lieu deffmpeg -i
bain
Pouvez-vous s'il vous plaît me guider sur le débit vidéo en utilisant l'exemple de sortie suivant? Entrée # 0, flv, à partir de 'mi-cc-03-bed_and_breakfast.flv': Durée: 00: 00: 18.7, démarrage: 0.000000, débit binaire: 64 kb / s Flux # 0.0: Vidéo: flv, yuv420p, 480x360, 29.92 fps (r) Stream # 0.1: Audio: mp3, 44100 Hz, stéréo, 64 kb / s Doit fournir au moins un fichier de sortie
Pour afficher le débit binaire global, il vaut mieux utiliser -show_format, voire mieux (sur * nix) avprobe -show_format file.avi | grep bit_rate. La même syntaxe fonctionnera également pour ffprobe.
evilsoup
2
Voici un autre outil qui fait la même chose:, tcprobequi fait partie du transcodepackage. Utilisez le -icommutateur pour obtenir un vidage d'informations du fichier (exemple de sortie du même fichier que dans l' mplayerexemple):
Obtenez exactement le débit vidéo via mediainfo : $ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou en Kbps: $ mediainfo --Output='Video;%BitRate/String%'
Obtenez exactement le débit audio via mediainfo en bps: $ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou en Kbps: $ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
Voici une réponse bash copier-coller utilisant avprobe (qui vient avec avconv et peut-être ffmpeg) au cas où vous ne voudriez que le nombre (pour plus de scripts)
function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }
Cela fonctionne comme ça. Cette ligne obtient des informations sur le fichier (en supprimant des informations supplémentaires sur stdout):
avprobe -show_format test.mp4 2> /dev/null
grepSélectionne ensuite la ligne qui mentionne le débit binaire
grep "bit_rate"
Dont sedpuis extrait le bitrate (en bits / seconde)
sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';
Pour faire court, copiez la fonction dans la première ligne et ensuite vous pouvez faire
$ bitrate test.mp4
593567
(ce n'est pas une vidéo de haute qualité, 593 kb / s, car le débit binaire utilise 1000 au lieu de 1024 apparemment)
J'ai essayé d'obtenir les mêmes informations mais juste ces données pour les utiliser dans une boucle bash .. et je les ai! Utilisation de FFPROBE!
FFPROBE: hide_banner: masquer les informations d'en-tête, loglevel 0 ne nous donne que nos informations requises, select_streams spécifie sur quel flux (vidéo) nous travaillons, show_entries nous permet de spécifier les données que nous voulons spécifiquement
Réponses:
Vous pouvez utiliser MPlayer pour obtenir ces informations.
En particulier, vous voulez l'
-identify
option. L'option lui-frames 0
dit de ne pas lire le fichier et de-vo null -ao null
lui donner des pilotes nuls pour la vidéo et l'audio (vous pouvez donc utiliser cette commande via SSH ou un autre terminal non compatible X).Vous pouvez combiner cela avec
grep
ou d'autres outils pour extraire la ligne spécifique que vous souhaitez:La sortie complète ressemble à ceci:
la source
ffmpeg fonctionne bien:
la source
libav-tools
et exécuteravconv -i
au lieu deffmpeg -i
la source
-show_format
, voire mieux (sur * nix)avprobe -show_format file.avi | grep bit_rate
. La même syntaxe fonctionnera également pour ffprobe.Voici un autre outil qui fait la même chose:,
tcprobe
qui fait partie dutranscode
package. Utilisez le-i
commutateur pour obtenir un vidage d'informations du fichier (exemple de sortie du même fichier que dans l'mplayer
exemple):la source
Obtenez exactement le débit vidéo via mediainfo :
$ mediainfo --Output='Video;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou en Kbps:
$ mediainfo --Output='Video;%BitRate/String%'
Obtenez exactement le débit audio via mediainfo en bps:
$ mediainfo --Output='Audio;%BitRate%' '/MY/MEDIA/FILE.MP4'
ou en Kbps:
$ mediainfo --Output='Audio;%BitRate/String%' '/MY/MEDIA/FILE.MP4'
la source
Voici une réponse bash copier-coller utilisant avprobe (qui vient avec avconv et peut-être ffmpeg) au cas où vous ne voudriez que le nombre (pour plus de scripts)
Cela fonctionne comme ça. Cette ligne obtient des informations sur le fichier (en supprimant des informations supplémentaires sur stdout):
grep
Sélectionne ensuite la ligne qui mentionne le débit binaireDont
sed
puis extrait le bitrate (en bits / seconde)Pour faire court, copiez la fonction dans la première ligne et ensuite vous pouvez faire
(ce n'est pas une vidéo de haute qualité, 593 kb / s, car le débit binaire utilise 1000 au lieu de 1024 apparemment)
la source
J'ai essayé d'obtenir les mêmes informations mais juste ces données pour les utiliser dans une boucle bash .. et je les ai! Utilisation de FFPROBE!
FFPROBE: hide_banner: masquer les informations d'en-tête, loglevel 0 ne nous donne que nos informations requises, select_streams spécifie sur quel flux (vidéo) nous travaillons, show_entries nous permet de spécifier les données que nous voulons spécifiquement
fer @ FerPC: ~ / Téléchargements / TEMP $ ffprobe -hide_banner -loglevel 0 -of flat -i 'Eng_Sub_EP.1_1_4.mkv' -select_streams v -show_entries 'format = bit_rate'
vous obtenez: format.bit_rate = "1085360"
la source