Wie kann ich unter Linux Informationen zu Videodateien von der Kommandozeile abrufen?


81

Ich möchte über die Befehlszeile alle Informationen zu einer bestimmten Videodatei anzeigen, einschließlich Länge, Qualität, Bitrate, Auflösung, Audio- und Videoformate, Anzahl und Sprache der Audiostreams und Untertitel usw. je mehr, desto besser.

Bisher muss ich auf die Registerkarte "Informationen" von VLC zurückgreifen, da mir selbst der Dolphin-Dateimanager nicht dabei hilft: Er zeigt mir nur einige dieser Informationen und nur für einige Formate an (dh .mkvscheint nicht auf diese Weise unterstützt zu werden ).


2
Was ist mit mediainfo ?
Endoro

5
Schauen Sie sich auch mkvinfound ffprobean.
Slhck

Danke auch dir; Bitte antworten Sie wie zuvor, damit ich über Ihren Vorschlag abstimmen kann
Sekhemty

1
Mkvinfo ist in Ordnung, aber nur für MKV-Videos:mkvinfo -v -v video.mkv
Endoro

Antworten:


100

Probieren Sie mediainfo aus . In der Befehlszeile eingeben mediainfo input.mkv. Für detailliertere Videoinformationen mediainfo --fullscan input.mkv.

Ausgabebeispiel:

Allgemeines
Eindeutige ID: 239093944660469735839645243666869007606 (0xB3DFD199E22F0E7CBAE1FE52206834F6)
Vollständiger Name: input.mkv
Format: Matroska
Formatversion: Version 2
Dateigröße: 39.6 MiB
Dauer: 20s 288ms
Gesamtbitratenmodus: Variabel
Gesamtbitrate: 16,4 Mbit / s
Filmname: Mein bester Film
Verschlüsselungsdatum: UTC 2012-11-10 16:42:02
Schreibanwendung: mkvmerge v5.8.0 ('No Sleep / Pillow') erstellt am Sep 2 2012 15:37:04
Bibliothek schreiben: libebml v1.2.3 + libmatroska v1.3.0
Produzent: ??? ???????
Vielen Dank an: Bruce Davey
Hauptdarsteller: Rudy Youngblood
Remix von: © ????

Video
ID: 1
Format: AVC
Format / Info: Erweiterter Videocodec
Formatprofil: Hoch@L4.0
MultiView_Count: 2
Formateinstellungen, CABAC: Ja
Formateinstellungen, ReFrames: 2 Frames
Formateinstellungen, GOP: M = 2, N = 13
Muxing-Modus: Header-Stripping
Codec-ID: V_MPEG4 / ISO / AVC
Dauer: 20s 280ms
Bitratenmodus: Variabel
Bitrate: 15,8 Mbit / s
Maximale Bitrate: 16,0 Mbit / s
Breite: 1 920 Pixel
Höhe: 1 080 Pixel
Seitenverhältnis anzeigen: 16: 9
Bildratenmodus: Konstant
Bildrate: 25.000 fps
Farbraum: YUV
Chroma-Unterabtastung: 4: 2: 0
Bittiefe: 8 Bits
Scan-Typ: Interlaced
Scanauftrag: Oberes Feld zuerst
Bits / (Pixel * Frame): 0,304
Stream-Größe: 38,2 MiB (96%)
Titel: Sony Hardware Video H.264 Encoder
Sprache Englisch
Voreinstellung: Ja
Gezwungen: Nein

Audio
ID: 2
Format: AC-3
Format / Info: Audiocodierung 3
Moduserweiterung: CM (komplette Haupt)
Formateinstellungen, Endianness: Big
Muxing-Modus: Header-Stripping
Codec-ID: A_AC3
Dauer: 20s 288ms
Bitratenmodus: Konstant
Bitrate: 256 Kbit / s
Kanal (e): 2 Kanäle
Kanalpositionen: Vorderseite: LR
Abtastrate: 48,0 kHz
Bittiefe: 16 Bit
Kompressionsmodus: Verlust
Verzögerung relativ zum Video: -80ms
Stream-Größe: 634 KiB (2%)
Titel: Sony Hardware Audio AC3 Encoder
Sprache: Russisch
Voreinstellung: Ja
Gezwungen: Nein

Text
ID: 3
Format: PGS
Muxing-Modus: Zlib
Codec-ID: S_HDMV / PGS
Codec ID / Info: Das gleiche Untertitelformat wie bei BDs / HD-DVDs
Titel: Sony Hardware PGS Encoder
Sprache Englisch
Voreinstellung: Ja
Gezwungen: Nein

Es ist gut, aber ich möchte nur die Dauer in der Kommandozeile erhalten. Danke
Günay Gültekin

2
Ja, ich habe es gefunden. Ich sollte es so machen; 'mediaInfo --Output = Video;% Duration% filename.mp4'
Günay Gültekin

22

Du kannst mplayer benutzen:

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

Ausgabe:

MPlayer 1.1-4.2.1 (C) 2000-2012 MPlayer Team
Can't init Apple Remote.

Playing vid.mp4.
libavformat version 54.6.101 (internal)
libavformat file format detected.
ID_VIDEO_ID=0
[lavf] stream 0: video (h264), -vid 0
ID_AUDIO_ID=0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [H264]  480x360  24bpp  29.970 fps  700.7 kbps (85.5 kbyte/s)
Clip info:
 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
 encoder: 4.2.1
ID_CLIP_INFO_NAME4=encoder
ID_CLIP_INFO_VALUE4=4.2.1
 encoder-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
Load subtitles in ./
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
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 54.23.100 (internal)
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
ID_VIDEO_CODEC=ffh264
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
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
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [null] 44100Hz 1ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=ffaac
Starting playback...


Exiting... (End of file)
ID_EXIT=EOF

2
Zu Ihrer Information , das hat unter OS X 10.10 mit brew.sh und der Installation von mplayer mit sehr gut funktioniert brew install mplayer. mplayer scheint viel mehr Nicht-Standard-Metadaten zu erkennen als mediainfo.
Andrew Odri

22

ffprobe

Unter Ubuntu:

sudo apt install ffmpeg
ffprobe a.mp4

Um Informationen über das Format, die Streams usw. zu erhalten, führen Sie Folgendes aus:

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
[/STREAM]
[STREAM]
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=1
channel_layout=mono
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/44100
start_pts=-1024
start_time=-0.023220
duration_ts=1324024
duration=30.023220
bit_rate=56517
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=1293
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=SoundHandler
[/STREAM]
[FORMAT]
filename=input.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=-0.023220
duration=30.024000
size=368644
bit_rate=98226
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:title=FFprobe Tips
TAG:encoder=Lavf56.15.101
[/FORMAT]

Sie können auch als JSON oder CSV ausgeben. Sehen Sie mehr über ffprobe .


ExifTool

Unter Ubuntu:

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

Beispielausgabe:

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

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

Getestet unter Ubuntu 18.10.


@slhck danke für die Bearbeitung, aber bitte sag mit welcher Ubuntu-Version du getestet hast. Angesichts dessen akzeptiere ich die Bearbeitung, danke.
Ciro Santilli

18.04 und 18.10, also die LTS und die aktuellen. Beachten Sie, dass die Antworten in Stack Exchange möglicherweise von anderen Benutzern bearbeitet werden, um sie auf dem neuesten Stand zu halten.
Slhck

@slhck danke. Sie können aber auch mehrere Jahre lang ohne Updates bleiben, besser mit jedem Edit getestet.
Ciro Santilli

Ja, die Version, für die es getestet wurde, kann hinzugefügt werden, hängt jedoch hauptsächlich von den Tools selbst (ffprobe, exiftool) und nicht vom Betriebssystem ab.
Slhck

@slhck vereinbart, meine aktuelle Antwort Vorlage endet in "Getestet in Ubuntu ZW, mypackage XY" :-)
Ciro Santilli新疆改造中心法轮功六四事件

3

Mediainfo ist ein großartiges Werkzeug. Alternativ können Sie die Details auch mit ffprobe erfassen .

$ 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

Hier ist die Ausgabe

{
    "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"
        }
    }
}

2

Wie Günay Gültekin schrieb, kann man nur ein bestimmtes Attribut erhalten, aber die Anführungszeichen fehlten:

mediaInfo --Output='Video;%Duration%' filename.mp4

Darauf basierend habe ich einen kleinen Wrapper geschrieben, um die Dauer der gefundenen Dateien zu berechnen, der eine Zusammenfassung ausgibt:

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

1

Informationen zu aktuellen Linux-Distributionen erhalten Sie auch über avconv:

$ avconv -i ch1_video_01.mpg 
avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[mpeg @ 0x722840] max_analyze_duration reached
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mpeg, from 'ch1_video_01.mpg':
  Duration: 00:03:48.01, start: 0.274000, bitrate: 6042 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 64:45 DAR 16:9], 8000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
At least one output file must be specified

avconvwird nicht mehr mit Ubuntu ausgeliefert.
Slhck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.