Linux의 명령 줄에서 비디오 파일 정보를 검색하는 방법은 무엇입니까?


81

길이, 품질, 비트 전송률, 해상도, 오디오 및 비디오 형식, 오디오 스트림 및 자막의 수 및 언어 등을 포함하여 주어진 비디오 파일과 관련된 모든 정보를 명령 줄에서보고 싶습니다. 더, 최고.

그것은 단지 이러한 정보의 일부를 나에게 보여 주며 그냥 형식 (위해 즉 : 심지어 돌고래 파일 관리자는이 날 도움이되지 않는 것이 있기 때문에 지금까지 이제 나는 VLC의 "정보"탭을 의지해야한다 .mkv그런 식으로 지원하는 것 같지 않습니다 ).


2
무엇에 대한 Mediainfo를 ?
Endoro

5
보고에서 받아 mkvinfoffprobe도합니다.
slhck

감사합니다. 이전과 마찬가지로, 귀하의 제안에 올바르게 투표 할 수 있도록 답변하십시오
Sekhemty

1
Mkvinfo는 훌륭하지만 MKV 비디오에만 해당됩니다.mkvinfo -v -v video.mkv
Endoro

답변:


100

부여 Mediainfo를 시도. 명령 행에을 입력하십시오 mediainfo input.mkv. 보다 자세한 비디오 정보는 mediainfo --fullscan input.mkv.

출력 예 :

일반
고유 ID : 239093944660469735839645243666869007606 (0xB3DFD199E22F0E7CBAE1FE52206834F6)
성명 : input.mkv
형식 : Matroska
포맷 버전 : 버전 2
파일 크기 : 39.6 MiB
시간 : 20 초 288ms
전체 비트 레이트 모드 : 가변
전체 비트 전송률 : 16.4Mbps
영화 이름 : 내 최고의 영화
인코딩 날짜 : UTC 2012-11-10 16:42:02
신청서 작성 : mkvmerge v5.8.0 ( 'No Sleep / Pillow') 2012 년 9 월 2 일 15:37:04
라이브러리 작성 : libebml v1.2.3 + libmatroska v1.3.0
제품명 : ??? ???????
덕분에 : 브루스 Davey
주연 : 루디 영 블러드
리믹스 : © ????

비디오
ID : 1
형식 : AVC
형식 / 정보 : 고급 비디오 코덱
형식 프로파일 : High@L4.0
MultiView_Count : 2
형식 설정, CABAC : 예
형식 설정, ReFrames : 2 프레임
형식 설정, GOP : M = 2, N = 13
멀티플렉싱 모드 : 헤더 스트리핑
코덱 ID : V_MPEG4 / ISO / AVC
지속 시간 : 20 초 280ms
비트 레이트 모드 : 가변
비트 레이트 : 15.8 Mbps
최대 비트 레이트 : 16.0 Mbps
너비 : 1,920 픽셀
높이 : 1,080 픽셀
화면 비율 : 16 : 9
프레임 속도 모드 : 상수
프레임 속도 : 25.000fps
색 공간 : YUV
크로마 서브 샘플링 : 4 : 2 : 0
비트 심도 : 8 비트
스캔 유형 : 인터레이스
스캔 순서 : 맨 위 필드
비트 / (픽셀 * 프레임) : 0.304
스트림 크기 : 38.2 MiB (96 %)
제목 : Sony Hardware Video H.264 인코더
언어 : 영어
기본값 : 예
강제 : 아니오

오디오
ID : 2
형식 : AC-3
형식 / 정보 : 오디오 코딩 3
모드 확장 : CM (완전 메인)
형식 설정, 엔디안 : 큰
멀티플렉싱 모드 : 헤더 스트리핑
코덱 ID : A_AC3
시간 : 20 초 288ms
비트 레이트 모드 : 상수
비트 레이트 : 256Kbps
채널 : 2 채널
채널 위치 : 프론트 : LR
샘플링 속도 : 48.0 KHz
비트 깊이 : 16 비트
압축 모드 : 손실
비디오에 대한 지연 : -80ms
스트림 크기 : 634 KiB (2 %)
제목 : Sony Hardware Audio AC3 인코더
언어 : 러시아어
기본값 : 예
강제 : 아니오

본문
ID : 3
형식 : PGS
멀티플렉싱 모드 : zlib
코덱 ID : S_HDMV / PGS
코덱 ID / 정보 : BD / HD-DVD에서 사용되는 것과 동일한 자막 형식
제목 : Sony Hardware PGS Encoder
언어 : 영어
기본값 : 예
강제 : 아니오

좋지만 나는 단지 커맨드 라인에서 지속 시간을 얻고 싶습니다.
감사합니다

2
네, 찾았어요 나는 그렇게해야한다. 'Mediainfo를 --output = 비디오; % 지속 시간 %의 filename.mp4'
Günay Gültekin

22

mplayer를 사용할 수 있습니다 :

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

산출:

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
참고로, 이것은 brew.sh를 사용 하고 mplayer를 설치 하여 OS X 10.10에서 훌륭하게 작동했습니다 brew install mplayer. mplayer는 mediainfo보다 훨씬 많은 비표준 메타 데이터를 감지하는 것 같습니다.
Andrew Odri 2016 년

22

ffprobe

우분투에서 :

sudo apt install ffmpeg
ffprobe a.mp4

형식, 스트림 등에 대한 정보를 얻으려면 다음을 실행하십시오.

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]

JSON 또는 CSV로 출력 할 수도 있습니다. ffprobe에 대한 자세한 내용을 참조하십시오 .


ExifTool

우분투에서 :

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

샘플 출력 :

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

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

우분투에서 테스트 18.10.


@slhck 편집 해 주셔서 감사하지만 테스트 한 우분투 버전을 말하십시오. 그것을 감안할 때, 나는 편집을 받아들입니다. 감사합니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

18.04와 18.10이므로 LTS와 현재 것입니다. 다른 사용자가 Stack Exchange의 답변을 최신 상태로 유지하기 위해 편집 할 수 있습니다.
slhck

@slhck 감사합니다. 그러나 업데이트없이 몇 년 동안 유지 될 수 있으므로 모든 편집시 테스트를 더 잘 수행 할 수 있습니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

예, 테스트 한 버전을 추가 할 수 있지만 대부분 운영 체제가 아닌 도구 자체 (ffprobe, exiftool)에 따라 다릅니다.
slhck

@slhck 동의, 내 현재 답변 템플릿 "우분투 ZW, mypackage XY에서 테스트"로 끝납니다 :-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

3

Mediainfo는 훌륭한 도구입니다. 대안으로 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

출력은 다음과 같습니다

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

Günay Gültekin이 쓴 것처럼 특정 속성 만 얻을 수 있지만 따옴표가 누락되었습니다.

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

이를 바탕으로, 나는 발견 된 파일의 지속 시간을 계산하고 요약을 출력하는 작은 래퍼를 작성했습니다.

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

1

최근 리눅스 배포판에서는 다음을 사용하여 정보를 얻을 수도 있습니다 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

avconv더 이상 우분투와 함께 제공되지 않습니다.
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.