150 votes

Comment récupérer les informations sur un fichier vidéo en ligne de commande sous Linux ?

Je voudrais voir en ligne de commande toutes les informations relatives à un fichier vidéo donné, y compris la durée, la qualité, le débit binaire, la résolution, les formats audio et vidéo, le nombre et la langue des flux audio et des sous-titres, et ainsi de suite ; plus il y en a, mieux c'est.

En ce moment, je dois me rabattre sur l'onglet "informations" de VLC car même le gestionnaire de fichiers Dolphin ne m'aide pas avec cela : il ne me montre que certaines de ces informations et seulement pour certains formats (c'est-à-dire le .mkv ne semble pas pris en charge de cette façon).

4 votes

Que diriez-vous de mediainfo ?

5 votes

Jetons un coup d'œil à mkvinfo et ffprobe également.

0 votes

Merci à toi aussi; comme précédemment, veuillez répondre afin que je puisse voter correctement pour ta suggestion

180voto

Endoro Points 2636

Essayez mediainfo. Sur la ligne de commande, tapez mediainfo input.mkv. Pour des informations vidéo plus détaillées, tapez mediainfo --fullscan input.mkv.

Exemple de sortie :

Général
Identifiant unique                       : 239093944660469735839645243666869007606 (0xB3DFD199E22F0E7CBAE1FE52206834F6)
Nom complet                              : input.mkv
Format                                   : Matroska
Version du format                        : Version 2
Taille du fichier                        : 39.6 Mio
Durée                                    : 20s 288ms
Mode débit global                        : Variable
Débit global                             : 16.4 Mb/s
Nom du film                              : Mon meilleur film
Date d'encodage                          : UTC 2012-11-10 16:42:02
Application de codage                   : mkvmerge v5.8.0 ('No Sleep / Pillow') compilé le Sep  2 2012 15:37:04
Bibliothèque de codage                   : libebml v1.2.3 + libmatroska v1.3.0
Producteur                               : ??? ???????
Remerciements                            : Bruce Davey
Interprète principal                     : Rudy Youngblood
Remixé par                               : ©????

Vidéo
ID                                       : 1
Format                                   : AVC
Informations sur le format                : Advanced Video Codec
Profil du format                         : High@L4.0
Compteur MultiView                       : 2
Réglages du format, Reframes             : 2 images
Réglages du format, GOP                  : M=2, N=13
Mode multiplexage                        : Extraction du fichier
Identifiant du codec                     : V\_MPEG4/ISO/AVC
Durée                                    : 20s 280ms
Mode débit vidéo                         : Variable
Débit vidéo                              : 15.8 Mb/s
Débit maximum                            : 16.0 Mb/s
Largeur                                  : 1 920 pixels
Hauteur                                  : 1 080 pixels
Format à l'écran                         : 16:9
Cadence                                  : Constant
Cadence de l'image                       : 25.000 FPS
Espace de couleurs                       : YUV
Sous-échantillonnage de la chrominance   : 4:2:0
Profondeur des couleurs                  : 8 bits
Type de balayage                         : Entrelacé
Ordre de balayage                        : Trame supérieure en premier
Bits/(Pixel\*Image)                       : 0.304
Taille du flux                           : 38.2 Mio (96%)
Titre                                    : Encodeur vidéo H.264 Sony Hardware
Langue                                   : Anglais
Par défaut                               : Oui
Forcé                                    : Non

Audio
ID                                       : 2
Format                                   : AC-3
Informations sur le format                : Audio Coding 3
Extension du mode                        : CM (complete main)
Réglages de format, Endianness           : Big
Mode multiplexage                        : Extraction du fichier
Identifiant du codec                     : A\_AC3
Durée                                    : 20s 288ms
Mode débit audio                         : Constant
Débit audio                              : 256 Kbps
Canaux                                  : 2 canaux
Position des canaux                     : Avant: L R
Fréquence d'échantillonnage             : 48.0 KHz
Profondeur des couleurs                 : 16 bits
Mode de compression                     : Avec perte
Décalage relatif par rapport à la vidéo : -80ms
Taille du flux                          : 634 Kio (2%)
Titre                                  : Encodeur audio AC3 Sony Hardware
Langue                                 : Russe
Par défaut                             : Oui
Forcé                                  : Non

Texte
ID                                     : 3
Format                                 : PGS
Mode multiplexage                      : zlib
Identifiant du codec                   : S\_HDMV/PGS
Informations sur le codec               : Le même format de sous-titre utilisé sur les BDs/HD-DVDs
Titre                                  : Encodeur de sous-titres PGS Sony Hardware
Langue                                 : Anglais
Par défaut                             : Oui
Forcé                                  : Non

0 votes

C'est bien mais je veux juste obtenir la durée en ligne de commande. Merci

6 votes

Oui, je l'ai trouvé. Je devrais le faire comme ça ; 'mediaInfo --Output=Video;%Duration% filename.mp4'

68voto

Ffprobe

Sous Ubuntu :

sudo apt install ffmpeg
ffprobe a.mp4

Pour obtenir des informations sur le format, les flux, etc., exécutez :

ffprobe -v error -show_format -show_streams a.mp4

[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=1/50
codec_tag_string=avc1
codec_tag=0x31637661
width=320
height=240
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=4:3
pix_fmt=yuv420p
level=13
color_range=N/A
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
timecode=N/A
refs=4
is_avc=1
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/12800
start_pts=0
start_time=0.000000
duration_ts=384000
duration=30.000000
bit_rate=34761
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=750
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:language=und
TAG:handler_name=VideoHandler

Ou vous pouvez obtenir simplement une entrée sélectionnée, par exemple size, avec :

ffprobe -v error -show_entries format=size -of default=noprint_wrappers=1:nokey=1 input.mp4

Vous pouvez également obtenir une sortie JSON ou CSV. Voir plus d'informations sur ffprobe.


ExifTool

Sous Ubuntu :

sudo apt install libimage-exiftool-perl
exiftool a.mp4

Sortie d'exemple :

ExifTool Version Number         : 10.00
File Name                       : lego.mp4
Directory                       : .
File Size                       : 375 kB
File Modification Date/Time     : 2016:02:03 17:18:15+01:00
File Access Date/Time           : 2016:02:03 17:18:49+01:00
File Inode Change Date/Time     : 2016:02:03 17:18:49+01:00
File Permissions                : rw-rw-r--
File Type                       : MP4
File Type Extension             : mp4
MIME Type                       : video/mp4
Major Brand                     : MP4 v2 [ISO 14496-14]
Minor Version                   : 0.0.0
Compatible Brands               : mp42, isom, avc1
Movie Data Size                 : 379872
Movie Data Offset               : 168
Movie Header Version            : 0
Create Date                     : 2010:03:20 21:29:11
Modify Date                     : 2010:03:20 21:29:12
Time Scale                      : 90000
Duration                        : 5.57 s
Preferred Rate                  : 1
Preferred Volume                : 100.00%
Preview Time                    : 0 s
Preview Duration                : 0 s
Poster Time                     : 0 s
Selection Time                  : 0 s
Selection Duration              : 0 s
Current Time                    : 0 s
Next Track ID                   : 3
Track Header Version            : 0
Track Create Date               : 2010:03:20 21:29:11
Track Modify Date               : 2010:03:20 21:29:12
Track ID                        : 1
Track Duration                  : 5.53 s
Track Layer                     : 0
Track Volume                    : 0.00%
Image Width                     : 560
Image Height                    : 320
Graphics Mode                   : srcCopy
Op Color                        : 0 0 0
Compressor ID                   : avc1
Source Image Width              : 560
Source Image Height             : 320
X Resolution                    : 72
Y Resolution                    : 72
Compressor Name                 : JVT/AVC Coding
Bit Depth                       : 24
Color Representation            : nclc 1 1 1
Video Frame Rate                : 30
Matrix Structure                : 1 0 0 0 1 0 0 0 1
Media Header Version            : 0
Media Create Date               : 2010:03:20 21:29:11
Media Modify Date               : 2010:03:20 21:29:12
Media Time Scale                : 48000
Media Duration                  : 5.57 s
Media Language Code             : eng
Balance                         : 0
Audio Format                    : mp4a
Audio Channels                  : 1
Audio Bits Per Sample           : 16
Audio Sample Rate               : 48000
Track 2 Name                    : Stereo
Handler Type                    : Metadata
Encoder                         : HandBrake 0.9.4 2009112300
Avg Bitrate                     : 546 kbps
Image Size                      : 560x320
Megapixels                      : 0.179
Rotation                        : 0

Voir aussi : https://askubuntu.com/questions/249828/command-to-see-media-file-info-in-terminal

Testé sur Ubuntu 18.10.

0 votes

@slhck merci pour la modification, mais veuillez préciser avec quelle version d'Ubuntu vous avez testé. Étant donné cela, j'accepte la modification, merci.

0 votes

18.04 et 18.10, donc les versions LTS et actuelles. Veuillez noter que les réponses sur Stack Exchange peuvent être modifiées par d'autres utilisateurs pour les maintenir à jour.

0 votes

@slhck merci. Mais ils peuvent également rester sans mise à jour pendant plusieurs années, il est préférable d'ajouter "testé avec" à chaque modification.

24voto

Jody Points 1963

Vous pouvez utiliser mplayer:

mplayer -vo null -ao null -frames 0 -identify videofile.mp4

Sortie:

MPlayer 1.1-4.2.1 (C) 2000-2012 MPlayer Team
Impossible d'initialiser la télécommande Apple.

Lecture de vid.mp4.
Version libavformat 54.6.101 (interne)
Format de fichier libavformat détecté.
ID_VIDEO_ID=0
[lavf] flux 0: vidéo (h264), -vid 0
ID_AUDIO_ID=0
[lavf] flux 1: audio (aac), -aid 0, -alang und
VIDÉO:  [H264]  480x360  24bpp  29.970 fps  700.7 kbps (85.5 kbyte/s)
Informations sur le clip:
 major_brand: qt
ID_CLIP_INFO_NAME0=major_brand
ID_CLIP_INFO_VALUE0=qt
 minor_version: 0
ID_CLIP_INFO_NAME1=minor_version
ID_CLIP_INFO_VALUE1=0
 compatible_brands: qt
ID_CLIP_INFO_NAME2=compatible_brands
ID_CLIP_INFO_VALUE2=qt
 creation_time: 2011-03-03 15:42:30
ID_CLIP_INFO_NAME3=creation_time
ID_CLIP_INFO_VALUE3=2011-03-03 15:42:30
 encodeur: 4.2.1
ID_CLIP_INFO_NAME4=encoder
ID_CLIP_INFO_VALUE4=4.2.1
 encodeur-eng: 4.2.1
ID_CLIP_INFO_NAME5=encoder-eng
ID_CLIP_INFO_VALUE5=4.2.1
 date: 2011-03-03T10:42:30-0500
ID_CLIP_INFO_NAME6=date
ID_CLIP_INFO_VALUE6=2011-03-03T10:42:30-0500
 date-eng: 2011-03-03T10:42:30-0500
ID_CLIP_INFO_NAME7=date-eng
ID_CLIP_INFO_VALUE7=2011-03-03T10:42:30-0500
ID_CLIP_INFO_N=8
Chargement de sous-titres dans ./
ID_FILENAME=vid.mp4
ID_DEMUXER=lavfpref
ID_VIDEO_FORMAT=H264
ID_VIDEO_BITRATE=700712
ID_VIDEO_WIDTH=480
ID_VIDEO_HEIGHT=360
ID_VIDEO_FPS=29.970
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=MP4A
ID_AUDIO_BITRATE=63600
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=1
ID_START_TIME=0.00
ID_LENGTH=3.83
ID_SEEKABLE=1
ID_CHAPTERS=0
==========================================================================
Ouverture du décodeur vidéo: [ffmpeg] Famille de codecs libavcodec de FFmpeg
Version libavcodec 54.23.100 (interne)
Codec vidéo sélectionné: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
ID_VIDEO_CODEC=ffh264
==========================================================================
Ouverture du décodeur audio: [ffmpeg] Décodeurs audio FFmpeg/libavcodec
AUDIO: 44100 Hz, 1 ch, s16le, 63.6 kbit/9.01% (ratio: 7950->88200)
ID_AUDIO_BITRATE=63600
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=1
Codec audio sélectionné: [ffaac] afm: ffmpeg (FFmpeg AAC (Audio MPEG-2/MPEG-4))
==========================================================================
AO: [null] 44100Hz 1ch s16le (2 octets par échantillon)
ID_AUDIO_CODEC=ffaac
Lancement de la lecture...

Sortie... (Fin du fichier)
ID_EXIT=EOF

2 votes

À noter que cela a bien fonctionné sur OS X 10.10 en utilisant brew.sh et en installant mplayer avec brew install mplayer. mplayer semble détecter beaucoup plus de métadonnées non standard que mediainfo.

8voto

Sathish Points 179

Mediainfo est un excellent outil. En alternative, vous pouvez obtenir les détails en utilisant ffprobe également.

$ ffprobe -hide_banner -loglevel fatal -show_error -show_format -show_streams -show_programs -show_chapters -show_private_data -print_format json /home/sathish/Videos/Aandipatti.mp4

Voici la sortie

{
    "programs": [

    ],
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "High",
            "codec_type": "video",
            "codec_time_base": "28113749/1349640000",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 1920,
            "height": 1080,
            "coded_width": 1920,
            "coded_height": 1080,
            "has_b_frames": 1,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "16:9",
            "pix_fmt": "yuv420p",
            "level": 40,
            "color_range": "tv",
            "color_space": "bt709",
            "color_transfer": "bt709",
            "color_primaries": "bt709",
            "chroma_location": "left",
            "refs": 1,
            "is_avc": "true",
            "nal_length_size": "4",
            "r_frame_rate": "24/1",
            "avg_frame_rate": "674820000/28113749",
            "time_base": "1/90000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 28113750,
            "duration": "312.375000",
            "bit_rate": "2612895",
            "bits_per_raw_sample": "8",
            "nb_frames": "7498",
            "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,
                "timed_thumbnails": 0
            },
            "tags": {
                "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/44100",
            "codec_tag_string": "mp4a",
            "codec_tag": "0x6134706d",
            "sample_fmt": "fltp",
            "sample_rate": "44100",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/44100",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 13779971,
            "duration": "312.470998",
            "bit_rate": "125595",
            "max_bit_rate": "125595",
            "nb_frames": "13457",
            "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,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "und",
                "handler_name": "SoundHandler"
            }
        }
    ],
    "chapters": [

    ],
    "format": {
        "filename": "/home/sathish/Videos/Aandipatti.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": "312.471000",
        "size": "107155047",
        "bit_rate": "2743423",
        "probe_score": 100,
        "tags": {
            "major_brand": "isom",
            "minor_version": "512",
            "compatible_brands": "isomiso2avc1mp41",
            "encoder": "Lavf56.40.101"
        }
    }
}

5voto

kohly Points 41

Tel que l'a écrit Günay Gültekin, vous pouvez obtenir uniquement un attribut spécifique, mais les guillemets étaient manquants:

mediaInfo --Output='Vidéo;%Durée%' fichier.mp4

Sur cette base, j'ai écrit un petit wrapper pour calculer la durée des fichiers trouvés qui affiche un résumé:

echo "scale=2; ($(find /foo/bar -type f -exec mediainfo --Output='Vidéo;%Durée%+' {} \; | grep -v ^$ | tr -d \\n)0)"/60000/60|bc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X