Déterminer le débit vidéo à l'aide de ffmpeg

16

J'essaie de déterminer le débit vidéo (pour le transcodage) à l'aide de la commande ffmpeg. J'ai essayé de suivre la commande.

ffmpeg -i 28572615.wmv

et il produit la sortie suivante

    Input #0, asf, from '28572615.wmv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf57.36.100
  Duration: 00:02:50.92, start: 0.000000, bitrate: 1982 kb/s
    Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
At least one output file must be specified

Si j'utilise une autre vidéo

ffmpeg -i with_out_sound.mp4

alors je reçois la sortie suivante

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'with_out_sound.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2015-04-21 05:14:57
  Duration: 00:00:27.86, start: 0.000000, bitrate: 500 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 622x480 [SAR 1:1 DAR 311:240], 100 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2015-04-21 05:14:57
      handler_name    : VideoHandler
At least one output file must be specified

Le point qui me rend confus est que dois-je regarder dans la ligne de métadonnées Durée ou la ligne de métadonnées de flux vidéo (flux # 0: 0) pour le débit vidéo?

utilisateur2528012
la source
Pour le 2ème fichier, quelle est la taille du fichier?
Gyan
La taille du fichier vidéo de @Mulvya 2nd est de 1,66 Mo
utilisateur2528012
Donc, les deux lectures sont fausses - le débit binaire réel est de 61 kb / s. C'est probablement parce que c'est un segment DASH.
Gyan
Comment ffmpeg détermine-t-il les débits binaires d'un flux? explique comment les taux sont déterminés.
Creidhne

Réponses:

15

Le débit vidéo est affiché dans les informations du flux vidéo. Les informations de format contiennent le débit de tous les flux plus la surcharge de multiplexage.

Si le débit vidéo est manquant, vous pouvez obtenir cette valeur en soustrayant le débit de tous les autres flux du débit total.

Si cela n’est pas viable, une méthode fastidieuse consiste à exécuter ffprobe pour afficher la taille des paquets et la durée du flux, puis à calculer le débit en additionnant toutes les lignes sauf la dernière et en divisant par la valeur de la dernière ligne.

ffprobe -select_streams v -show_entries packet=size:stream=duration -of compact=p=0:nk=1 video.mp4

Sortie:

4199      
2627      
1792      
3921      
2993      
...  
2301      
3076
2879
1543.00000

Bien sûr, il s’agit d’une solution de dernier recours, qui ne s’applique que si l’information de flux vidéo ne contient pas de débit et que l’estimation du débit en actualisant le débit de tous les autres flux n’est pas non plus possible.

Gyan
la source