¿Cómo recuperar la información del archivo de video desde la línea de comandos en Linux?


81

Me gustaría ver desde la línea de comandos toda la información relativa a un archivo de video dado, incluyendo longitud, calidad, velocidad de bits, resolución, formatos de audio y video, número e idioma de transmisiones de audio y subtítulos, y así sucesivamente; cuanto más, lo mejor.

Hasta ahora debo recurrir a la pestaña "información" de VLC porque incluso el administrador de archivos Dolphin no me está ayudando con esto: me muestra solo algunas de estas informaciones y solo para algunos formatos (es decir .mkv, no parece admitido de esa manera )


2
¿Qué pasa con mediainfo ?
Endoro

55
Echa un vistazo a mkvinfoy ffprobetambién.
slhck

Gracias a ti también; como antes, por favor responda para que pueda votar su sugerencia correctamente
Sekhemty

1
Mkvinfo está bien, pero solo para videos de MKV:mkvinfo -v -v video.mkv
Endoro

Respuestas:


100

Prueba mediainfo . En la línea de comando escriba mediainfo input.mkv. Para información de video más detallada mediainfo --fullscan input.mkv.

Ejemplo de salida:

General
ID único: 239093944660469735839645243666869007606 (0xB3DFD199E22F0E7CBAE1FE52206834F6)
Nombre completo: input.mkv
Formato: Matroska
Versión de formato: Versión 2
Tamaño de archivo: 39.6 MiB
Duración: 20s 288ms
Modo de velocidad de bits general: variable
Velocidad de bits general: 16,4 Mbps
Nombre de la película: mi mejor película
Fecha codificada: UTC 2012-11-10 16:42:02
Aplicación de escritura: mkvmerge v5.8.0 ('No Sleep / Pillow') construida el 2 de septiembre de 2012 15:37:04
Biblioteca de escritura: libebml v1.2.3 + libmatroska v1.3.0
Producent: ??? ???????
Gracias a: Bruce Davey
Intérprete principal: Rudy Youngblood
Remezclado por: © ????

Vídeo
ID: 1
Formato: AVC
Formato / Información: Códec de video avanzado
Perfil de formato: High@L4.0
MultiView_Count: 2
Configuración de formato, CABAC: Sí
Configuración de formato, Remarcos: 2 cuadros
Configuración de formato, GOP: M = 2, N = 13
Modo de muxing: eliminación de encabezado
ID de códec: V_MPEG4 / ISO / AVC
Duración: 20s 280ms
Modo de velocidad de bits: variable
Velocidad de bits: 15.8 Mbps
Velocidad de bits máxima: 16.0 Mbps
Ancho: 1 920 píxeles
Altura: 1.080 píxeles
Relación de aspecto de la pantalla: 16: 9
Modo de velocidad de fotogramas: constante
Velocidad de fotogramas: 25,000 fps
Espacio de color: YUV
Submuestreo de croma: 4: 2: 0
Profundidad de bits: 8 bits
Tipo de escaneo: entrelazado
Orden de escaneo: campo superior primero
Bits / (Pixel * Frame): 0.304
Tamaño de transmisión: 38.2 MiB (96%)
Título: Sony Hardware Video H.264 Encoder
Idioma: inglés
Predeterminado: Sí
Forzado: no

Audio
ID: 2
Formato: AC-3
Formato / Información: Codificación de audio 3
Extensión de modo: CM (completa principal)
Configuración de formato, Endianness: Big
Modo de muxing: eliminación de encabezado
ID de códec: A_AC3
Duración: 20s 288ms
Modo de velocidad de bits: constante
Velocidad de bits: 256 Kbps
Canal (es): 2 canales
Posiciones del canal: Frente: LR
Velocidad de muestreo: 48.0 KHz
Profundidad de bits: 16 bits
Modo de compresión: con pérdida
Retraso relativo al video: -80ms
Tamaño de la secuencia: 634 KiB (2%)
Título: Sony Hardware Audio AC3 Encoder
Idioma: ruso
Predeterminado: Sí
Forzado: no

Texto
ID: 3
Formato: PGS
Modo de muxing: zlib
ID de códec: S_HDMV / PGS
ID / información de códec: el mismo formato de subtítulos utilizado en BD / HD-DVD
Título: Sony Hardware PGS Encoder
Idioma: inglés
Predeterminado: Sí
Forzado: no

Es bueno, pero solo quiero obtener la duración en la línea de comandos.Gracias
Günay Gültekin

2
Sí, lo encontré. Debería hacerlo así; 'mediaInfo --Output = Video;% Duration% filename.mp4'
Günay Gültekin

22

Puedes usar mplayer:

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

Salida:

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
FYI, esto funcionó muy bien en OS X 10.10 usando brew.sh e instalando mplayer con brew install mplayer. mplayer parece detectar muchos más metadatos no estándar que mediainfo.
Andrew Odri

22

ffprobe

Bajo Ubuntu:

sudo apt install ffmpeg
ffprobe a.mp4

Para obtener información sobre el formato, las transmisiones, etc., ejecute:

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]

También puede generar como JSON o CSV. Ver más sobre ffprobe .


ExifTool

Bajo Ubuntu:

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

Salida de muestra:

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

Ver también: https://askubuntu.com/questions/249828/command-to-see-media-file-info-in-terminal

Probado en Ubuntu 18.10.


@slhck gracias por la edición, pero por favor di con qué versión de ubuntu has probado. Dado eso, acepto la edición, gracias.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

18.04 y 18.10, entonces los LTS y los actuales. Tenga en cuenta que las respuestas en Stack Exchange pueden ser editadas por otros usuarios para mantenerlas actualizadas.
Slhck

@slhck gracias. Pero también pueden permanecer durante varios años sin actualizaciones, mejor agregarlas probadas en cada edición.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Sí, la versión para la que se probó podría agregarse, pero depende principalmente de las herramientas mismas (ffprobe, exiftool), no del sistema operativo.
Slhck

@slhck estuvo de acuerdo, mi plantilla de respuesta actual termina en "Probado en Ubuntu ZW, mypackage XY" :-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

3

Mediainfo es una gran herramienta. Como alternativa, también puede obtener los detalles utilizando ffprobe .

$ 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

Aquí está la salida

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

Como escribió Günay Gültekin, solo puede obtener un atributo específico, pero faltan las comillas:

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

En base a esto, escribí un pequeño contenedor para calcular la duración de los archivos encontrados con un resumen:

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

1

En las distribuciones recientes de Linux también puede obtener información usando 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

avconvya no se envía con Ubuntu.
Slhck
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.