Je ne connais pas très bien la ligne de commande, donc j'espère que ce n'est pas trop stupide.
Si je cours:
ffmpeg -i videofile.avi
J'obtiens une sortie comme celle-ci:
ffmpeg version git-2013-11-21-6a7980e Copyright (c) 2000-2013 the FFmpeg develop ers
built on Nov 21 2013 12:06:32 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --prefix=/home/user/ffmpeg_build --extra-cflags=-I/home/user/ffmpeg_build/include --extra-ldflags=-L/home/user/ffmpeg_build/lib --b indir=/home/user/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable -libfdk- aac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-l ibx264 --enable- nonfree
libavutil 52. 53.100 / 52. 53.100
libavcodec 55. 44.100 / 55. 44.100
libavformat 55. 21.100 / 55. 21.100
libavdevice 55. 5.100 / 55. 5.100
libavfilter 3. 91.100 / 3. 91.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Input #0, avi, from 'videofile.avi':
Metadata:
encoder : Lavf52.68.0
Duration: 00:23:07.68, start: 0.000000, bitrate: 2390 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 23.98 fps, 23.98 tbr, 23.98 tbn, 1199 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, s16p, 128 k b/s
Si je n'étais intéressé que par la commande produisant "640x480", comment pourrais-je faire cela?
J'imagine que je dois diriger la sortie vers et effectuer une expression régulière? Je ne sais pas comment faire ça. Merci!
0x44...
et la seconde étant la résolution).width x height
flux vidéo par ligne sur plusieurs lignes. Cela peut être évité si vous le souhaitez avecffprobe
, ou en ajoutanthead -n 1
à la commande dans la réponse.Utilisation à
ffprobe
partir du package ffmpeg:Voir la documentation de ffprobe et le FFmpeg Wiki: conseils de ffprobe pour plus d'informations.
la source
faire le travail sans aucun
grep
sUne doublure ressemble à:
Cela renvoie la chaîne WxH que vous cherchiez.
la source
Je ne vois ici que des exemples d'utilisation
exiftool
et d'analyse de sa sortie, ce qui semble être un choix étrange.exiftool
peut être utilisé de manière directe pour obtenir la résolution (et presque toutes les autres métadonnées):exiftool -ImageSize -s3 filename
Est-ce que les résultats de la production sous une forme
WIDTHxHEIGHT
(eq:1280×720
)REMARQUE:
-s3
demande à exiftool de produire le format de sortie le plus court (sans noms de balises, guillemets, etc.)la source
Vous pouvez le faire en utilisant des expressions régulières et
ffmpeg
, mais je préférerais utiliserexiftool
, une partie du paquet libimage-exiftool-perl :Pourquoi
exiftool
?ffmpeg
/avprobe
impriment des lignes du formulaireStream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 640x480
où une ou plusieurs valeurs du formulaireAAAxBBB
sont possibles (comme vous pouvez le voir dans votre exemple). Il peut être difficile de déterminer laquelle est la résolution.exiftool
, d'autre part, génère des données du formulaireType : Value
. Il est donc plus facile d'obtenir le champ exact, à savoirImage Size
. De plus, étant donné la façon dont les champs sont spécifiés (séparés par deux points et des espaces), vous pouvez facilement extraire la valeur.Ce que fait la
awk
commande est:' *: *'
- un deux-points:
entouré d'un nombre quelconque d'espaces.$1
) estImage Size
print $2
).Une autre version serait:
Image
,Size
,:
et1242x480
sont tous différents domaines.^
) àImage Size
, nous obtenons la ligne correcte.Image
,Size
et:
sont les trois premiers champs).la source
/usr/share/example
). : DUne utilisation légèrement ésotérique
mediainfo
permet d'extraire facilement la largeur et la hauteur dans le format que vous utilisez après avoir utilisé une simple doublure. Observez l'exemple suivant sur mon système:Les divers autres paramètres qui peuvent être utilisés de cette manière sont visibles,
mediainfo --Info-Parameters
mais peut-être que cette simple utilisation suffira à elle seule ...la source
J'ai fait une
for
boucle 1 ligne pour extraire la résolution du répertoire des fichiers.la source
ls
ne se terminera pas bien ... la citation ne résoudra pas le désordre