Je ne suis qu'un développeur PHP modeste qui a été chargé de récupérer des informations de base sur des centaines de milliers de fichiers vidéo. J'ai eu un peu de chance en utilisant ffmpeg extraire le video bitrate
, video width
, video height
, duration
et aspect ratio
d'eux, mais avec un taux d'erreur d'environ 5%, cela me laisse toujours avec un très grand nombre de fichiers que je ne sais pas comment faire face. Les vidéos sont lues, mais la quantité massive de données retournées par ffmpeg m'a déconcerté quant à la façon d'analyser le XML retourné pour trouver ce dont j'ai besoin avec toutes les conditions que je semble rencontrer. (Les fichiers sont une collection des 15 dernières années environ, certains récemment encodés, d'autres convertis il y a des années)
ffprobe
Quoi qu'il en soit , j'ai trouvé l'utilisation suivante de pour obtenir la durée, et j'espérais que quelqu'un ici qui comprend les complexités de l'utilisation de ffmpeg & ffprobe serait assez aimable pour m'aider à trouver les autres valeurs dont j'ai besoin d'une manière plus simple que la code fou que je me retrouve à créer pour gravir tous les résultats de ffmpeg.
ffprobe -i "video.mp4" -show_entries format=duration -v quiet -of csv="p=0"
Merci beaucoup d'avance.
CLARIFICATION:
Je devrais ajouter qu'avec la cmd ci-dessous, je peux "voir" ce dont j'ai besoin, mais je ne comprends pas comment extraire ce dont j'ai besoin, par exemple récupérer le bitrate VIDEO, et supprimer / ignorer le bitrate AUDIO, ou déterminer lequel des 2 différentes durées à utiliser (durées audio / vidéo?)
C:\>ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4
duration=1712.000000
bit_rate=64000
width=320
height=240
duration=1711.946113
bit_rate=359827
duration=1712.000000
bit_rate=N/A
duration=1712.000000
bit_rate=N/A
Depuis https://trac.ffmpeg.org/wiki/FFprobeTips
Si vous souhaitez obtenir le bit_rate du 1er flux vidéo, vous pouvez utiliser:
Où
-select_steams v:0
sélectionne le premier flux vidéo et:nokey=1
donne la valeur sans la clé. Vous pouvez également extraire les informations en les redirigeant vers grep, mais je ne sais pas si elles sont disponibles sur votre système.J'espère que cela t'aides!
la source