web-dev-qa-db-fra.com

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

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?

13
user2528012

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 faisant la somme de toutes les lignes à l’exception de , 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.

12
Gyan