J'ai creusé à travers la documentation mplayer/mencoder et ffmpeg et je n'arrive pas à trouver quoi que ce soit. Je ne suis pas particulièrement pointilleux sur le format de sortie car je peux utiliser une expression régulière pour le retirer, je n'arrive tout simplement pas à obtenir les données en premier lieu. Essayez midentify.sh (TOOLS/midentify.sh dans l'arborescence de code source de MPlayer)Comment puis-je obtenir la résolution (largeur et hauteur) d'un fichier vidéo à partir d'une ligne de commande linux?
Répondre
MediaInfo a une version de ligne de commande et fournit les dimensions avec tonnes d'autres informations.
Ceci est utile. Pour une approche plus ciblée voir [ma réponse] (http://stackoverflow.com/a/43443097/3816360) :-) –
Il affiche des informations dans un format analysable:
$ ./midentify.sh /data/myvid.flv
ID_VIDEO_ID=0
ID_AUDIO_ID=1
ID_FILENAME=/data/myvid.flv
ID_DEMUXER=lavfpref
ID_VIDEO_FORMAT=VP6F
ID_VIDEO_BITRATE=0
ID_VIDEO_WIDTH=640
ID_VIDEO_HEIGHT=480
[,,,]
Le bon vieux "fichier" utilitaire souvent obtenir les dimensions d'un fichier vidéo.
Je l'ai essayé sur quelques et il était fou peu fiable. Semblait comme il ne pouvait vraiment gérer les fichiers MPEG. –
utilisation ffprobe (partie de boîte à outils FFmpeg)
exemple:
ffprobe -v quiet -print_format json -show_format -show_streams ~/Movies/big_buck_bunny_720p_5mb.mp4
sortie:
{
"streams": [
{
"index": 0,
"codec_name": "h264",
"codec_long_name": "H.264/AVC/MPEG-4 AVC/MPEG-4 part 10",
"profile": "Main",
"codec_type": "video",
"codec_time_base": "1/50",
"codec_tag_string": "avc1",
"codec_tag": "0x31637661",
"width": 1280,
"height": 720,
"coded_width": 1280,
"coded_height": 720,
"has_b_frames": 0,
"sample_aspect_ratio": "1:1",
"display_aspect_ratio": "16:9",
"pix_fmt": "yuv420p",
"level": 31,
"chroma_location": "left",
"refs": 1,
"is_avc": "1",
"nal_length_size": "4",
"r_frame_rate": "25/1",
"avg_frame_rate": "25/1",
"time_base": "1/12800",
"start_pts": 0,
"start_time": "0.000000",
"duration_ts": 378368,
"duration": "29.560000",
"bit_rate": "1032960",
"bits_per_raw_sample": "8",
"nb_frames": "739",
"disposition": {
"default": 1,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0
},
"tags": {
"creation_time": "1970-01-01 00:00:00",
"language": "und",
"handler_name": "VideoHandler"
}
},
{
"index": 1,
"codec_name": "aac",
"codec_long_name": "AAC (Advanced Audio Coding)",
"profile": "LC",
"codec_type": "audio",
"codec_time_base": "1/48000",
"codec_tag_string": "mp4a",
"codec_tag": "0x6134706d",
"sample_fmt": "fltp",
"sample_rate": "48000",
"channels": 6,
"channel_layout": "5.1",
"bits_per_sample": 0,
"r_frame_rate": "0/0",
"avg_frame_rate": "0/0",
"time_base": "1/48000",
"start_pts": 0,
"start_time": "0.000000",
"duration_ts": 1419264,
"duration": "29.568000",
"bit_rate": "383960",
"max_bit_rate": "416704",
"nb_frames": "1386",
"disposition": {
"default": 1,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0
},
"tags": {
"creation_time": "1970-01-01 00:00:00",
"language": "und",
"handler_name": "SoundHandler"
}
}
],
"format": {
"filename": "/Users/farsheed/Movies/big_buck_bunny_720p_5mb.mp4",
"nb_streams": 2,
"nb_programs": 0,
"format_name": "mov,mp4,m4a,3gp,3g2,mj2",
"format_long_name": "QuickTime/MOV",
"start_time": "0.000000",
"duration": "29.568000",
"size": "5253880",
"bit_rate": "1421504",
"probe_score": 100,
"tags": {
"major_brand": "isom",
"minor_version": "512",
"compatible_brands": "isomiso2avc1mp41",
"creation_time": "1970-01-01 00:00:00",
"encoder": "Lavf53.24.2"
}
}
}
Voir la documentation pour plus d'informations.
'ffmpeg -i video.mpg' est aussi une option. – Ben
@Ben 'ffprobe' fait exactement la même chose sauf qu'il ne retourne pas un code d'erreur (et attendez-vous à fournir des options d'encodage) – laughingbovine
Pas de largeur et de hauteur ici, non? – k7k0
En utilisant exiftool
exécutez la commande
exiftool VIDEOFILE
La sortie que vous obtenez est semblable à ceci:
ExifTool Version Number : 9.76
File Name : gource2.mkv
Directory : .
File Size : 2010 MB
File Modification Date/Time : 2015:01:07 14:16:22-06:00
File Access Date/Time : 2015:01:07 14:16:22-06:00
File Inode Change Date/Time : 2015:01:07 14:16:22-06:00
File Permissions : rw-rw-r--
File Type : MKV
MIME Type : video/x-matroska
EBML Version : 1
EBML Read Version : 1
Doc Type : matroska
Doc Type Version : 4
Doc Type Read Version : 2
Timecode Scale : 1 ms
Muxing App : libebml v1.3.0 + libmatroska v1.4.1
Writing App : mkvmerge v7.4.0 ('Circles') 64bit built on Dec 17 2014 11:31:10
Duration : 2:35:09
Date/Time Original : 2015:01:07 20:14:22Z
Video Codec ID : V_MPEG4/ISO/AVC
Video Frame Rate : 60
Track Language : und
Image Width : 1280
Image Height : 1024
Display Width : 1280
Display Height : 1024
Track Number : 2
Track Type : Audio
Audio Codec ID : A_DTS
Default Duration : 10.666666 ms
Audio Sample Rate : 48000
Audio Channels : 6
Image Size : 1280x1024
En utilisant ffmpeg/ffprobe
exécutez la commande
ffprobe VIDEOFILE
alternative:
ffmpeg -i VIDEOFILE
La sortie que vous obtenez est semblable à ceci:
ffprobe version 2.1.6 Copyright (c) 2007-2014 the FFmpeg developers
built on Nov 29 2014 12:07:56 with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-7)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil 52. 48.101/52. 48.101
libavcodec 55. 39.101/55. 39.101
libavformat 55. 19.104/55. 19.104
libavdevice 55. 5.100/55. 5.100
libavfilter 3. 90.100/3. 90.100
libavresample 1. 1. 0/1. 1. 0
libswscale 2. 5.101/2. 5.101
libswresample 0. 17.104/0. 17.104
libpostproc 52. 3.100/52. 3.100
Input #0, matroska,webm, from 'gource2.mkv':
Metadata:
creation_time : 2015-01-07 20:14:22
Duration: 02:35:09.70, start: 0.000000, bitrate: 1811 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1280x1024, SAR 1:1 DAR 5:4, 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
En utilisant mplayer
exécutez la commande
mplayer -really-quiet -ao null -vo null -identify -frames 0 VIDEOFILE
La sortie que vous obtenez est semblable à ceci :
ID_VIDEO_ID=0
ID_AUDIO_ID=0
ID_AID_0_LANG=eng
ID_CLIP_INFO_NAME0=creation_time
ID_CLIP_INFO_VALUE0=2015-01-07 20:14:22
ID_CLIP_INFO_N=1
ID_FILENAME=gource2.mkv
ID_DEMUXER=lavfpref
ID_VIDEO_FORMAT=H264
ID_VIDEO_BITRATE=0
ID_VIDEO_WIDTH=1280
ID_VIDEO_HEIGHT=1024
ID_VIDEO_FPS=60.000
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=8193
ID_AUDIO_BITRATE=1536000
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=6
ID_START_TIME=0.00
ID_LENGTH=9309.70
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_VIDEO_CODEC=ffh264
ID_AUDIO_BITRATE=1536000
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=6
ID_AUDIO_CODEC=ffdca
ID_EXIT=EOF
En utilisant mediainfo
exécutez la commande
mediainfo VIDEOFILE
La sortie que vous obtenez est semblable à ceci:
General
Unique ID : 311795358270161665158539797930749663166 (0xEA919A09196F0CAEF4E1B4FEB72B17BE)
Complete name : gource2.mkv
Format : Matroska
Format version : Version 4/Version 2
File size : 1.96 GiB
Duration : 2h 35mn
Overall bit rate : 1 811 Kbps
Encoded date : UTC 2015-01-07 20:14:22
Writing application : mkvmerge v7.4.0 ('Circles') 64bit built on Dec 17 2014 11:31:10
Writing library : libebml v1.3.0 + libmatroska v1.4.1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Codec ID : V_MPEG4/ISO/AVC
Bit rate : 266 Kbps
Width : 1 280 pixels
Height : 1 024 pixels
Display aspect ratio : 5:4
Frame rate mode : Variable
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Writing library : x264 core 138 r2363 c628e3b
Encoding settings : cabac=0/ref=1/deblock=0:1:1/analyse=0:0/me=dia/subme=0/psy=1/psy_rd=0.40:0.00/mixed_ref=0/me_range=16/chroma_me=1/trellis=0/8x8dct=0/cqm=0/deadzone=21,11/fast_pskip=1/chroma_qp_offset=0/threads=12/lookahead_threads=2/sliced_threads=0/nr=0/decimate=1/interlaced=0/bluray_compat=0/constrained_intra=0/bframes=0/weightp=0/keyint=250/keyint_min=25/scenecut=0/intra_refresh=0/rc=crf/mbtree=0/crf=22.0/qcomp=0.60/qpmin=0/qpmax=69/qpstep=4/ip_ratio=1.40/aq=0
Default : Yes
Forced : No
Audio
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Mode : 16
Format settings, Endianness : Big
Codec ID : A_DTS
Duration : 2h 35mn
Bit rate mode : Constant
Bit rate : 1 509 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Compression mode : Lossy
Stream size : 1.64 GiB (83%)
Language : English
Default : Yes
Forced : No
résumé du temps
exiftool
real 0m0.089s
user 0m0.081s
sys 0m0.008s
mplayer
real 0m0.050s
user 0m0.034s
sys 0m0.017s
ffprobe/ffmpeg
real 0m0.017s
user 0m0.011s
sys 0m0.007s
mediainfo
real 0m0.029s
user 0m0.025s
sys 0m0.004s
YMMV, mais ffprobe est le plus rapide, suivi par mediainfo puis mplayer et exiftool enfin
ffprobe < mediainfo < mplayer < exiftool
Utilisation ffprobe
:
$ eval $(ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width input.mkv)
$ size=${streams_stream_0_width}x${streams_stream_0_height}
$ echo $size
1280x720
Si vous êtes simplement intéressé par la résolution:
ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width video.mkv
Il travaille également sur Windows. Ceci est en cours d'exécution en ce moment sur mon PC pour créer un index de tous les fichiers:
find //Q1207/Film -size +10000k -print -a -exec ./ffprobe.exe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width \{\} \; > //Q1207/Film/index.txt
Pour revenir seulement la largeur et la hauteur mediainfo est un excellent outil.
mediainfo --inform = "Vidéo;% Largeur%" Videofile & & mediainfo --inform = "Vidéo;% Taille%" Videofile fera exactement cela, pas plus, pas moins, pour une vast array of supported video files.
Il y a une longue liste de paramètres utiles Inform=
que vous pouvez obtenir avec la commande mediainfo --Info-Parameters
Si vous voulez que la sortie au format standard largeurxhauteur utiliser Width=$(mediainfo --Inform="Video;%Width%" Video.File)&& Height=$(mediainfo --Inform="Video;%Height%" Video.File)&&echo $Width"X"$Height
Sources:
http://manpages.ubuntu.com/manpages/xenial/man1/mediainfo.1.html
Merci. Cette réponse m'a vraiment aidé. – Omid1989
Voici un "presque-one-liner" Je l'ai concocté autour ffprobe exactement cet effet. Fonctionne plutôt bien pour moi sur Linux et MacOS.
#!/bin/bash
B='[[:blank:]]'
D='[[:digit:]]'
ffprobe "$1" 2>&1 \
| grep 'Stream.*Video.*fps' \
| sed "s/^.*$B\($D$D$D*x$D$D$D*\).*$/\1/"
- 1. Résolution automatique Perforce à partir de la ligne de commande?
- 2. Obtenir l'image Hauteur et largeur
- 3. Comment générer des captures vidéo de fichiers vidéo via la ligne de commande linux
- 4. Obtenir la largeur et la hauteur d'origine de l'actioncript
- 5. Silverlight: Obtenir une image (à partir d'OpenFileDialog) largeur/hauteur
- 6. trouver Hauteur et largeur
- 7. Comment puis-je obtenir un handle de fichier à partir de la ligne de commande?
- 8. Outils d'édition vidéo en ligne de commande
- 9. XNA Largeur et Hauteur à Vector2
- 10. Comment obtenir et définir la hauteur de fenêtre popup et la largeur dans Internet Explorer
- 11. Modification de la résolution vidéo en n95 avec J2ME
- 12. Comment puis-je obtenir la largeur et la hauteur d'une chaîne de texte avec CAM :: PDF?
- 13. Est-il possible de publier un fichier FLA à partir de la ligne de commande?
- 14. compiler java à partir de la ligne de commande
- 15. Linux ligne de commande: diviser une chaîne
- 16. comment convertir la chaîne en fichier entier binaire en utilisant la ligne de commande sous Linux
- 17. SDK iPhone: Comment mesurer la largeur et la hauteur d'une chaîne à l'aide de Quartz?
- 18. Comment obtenir les arguments de la ligne de commande IE8 à partir du module complémentaire
- 19. Comment faire pour que Largeur et Hauteur reflètent ScaleTransform et comment ScaleTransform en définissant Hauteur et Largeur?
- 20. Comment sélectionner l'icône de bonne taille à partir d'un fichier .ico multi-résolution dans WPF?
- 21. ActionScript 3 largeur et hauteur de l'élément verrouillé à zéro
- 22. Comment puis-je obtenir la largeur maximale et la hauteur d'un appareil en android
- 23. JavaScript - fonction pour obtenir la largeur de l'image réelle et la hauteur (navigateur croisé)
- 24. Largeur et hauteur de la partie Web dynamique SharePoint
- 25. cURL- comment obtenir une réponse via la ligne de commande?
- 26. Définition par programme de la hauteur/largeur de l'image à partir de la base de données
- 27. Spécifier la largeur et la hauteur du tracé
- 28. Comment donner dynamiquement de la hauteur et de la largeur à div?
- 29. Comment obtenir par programme la résolution d'une fenêtre et celle du système sous Linux?
- 30. resume/suspendre enery star linux depuis la ligne de commande
http://askubuntu.com/questions/249828/command-to-see-media-file-info-in-terminal –