Ich habe durch die MPlayer/Mencoder und ffmpeg Dokumentation gegraben und ich kann nicht irgendetwas kommen. Ich bin nicht besonders wählerisch in Bezug auf das Ausgabeformat, da ich einen regulären Ausdruck verwenden kann, um es herauszuziehen, ich kann einfach nicht scheinen, die Daten an erster Stelle zu bekommen.Wie kann ich die Auflösung (Breite und Höhe) für eine Videodatei von einer Linux-Befehlszeile erhalten?
Antwort
MediaInfo hat eine Befehlszeilenversion und bietet die Abmessungen zusammen mit Tonnen von anderen Informationen.
Dies ist nützlich. Für einen gezielteren Ansatz siehe [meine Antwort] (http://stackoverflow.com/a/43443097/3816360) :-) –
Versuchen Sie midentify.sh (TOOLS/midentify.sh im Quellcode-Baum von MPlayer).
Es wird Informationen in einem Format parseable zeigen:
$ ./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
[,,,]
Die gute alte "Datei" Dienstprogramm wird oft die Dimensionen einer Videodatei erhalten.
Ich versuchte es auf ein paar und es war verrückt unzuverlässig. Es schien, als könnte es nur mit mpeg-Dateien umgehen. –
Verwenden ffprobe (Teil von FFmpeg-Toolkit)
Beispiel:
ffprobe -v quiet -print_format json -show_format -show_streams ~/Movies/big_buck_bunny_720p_5mb.mp4
Ausgang:
{
"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"
}
}
}
Siehe Dokumentation für weitere Informationen.
'ffmpeg -i video.mpg' ist auch eine Option. – Ben
@Ben 'ffprobe' macht die gleiche genaue Sache, außer es gibt keinen Fehlercode zurück (und erwarten Sie, Kodierungsoptionen zur Verfügung zu stellen) – laughingbovine
Keine Breite und Höhe hier, Recht? – k7k0
Mit exiftool
führen Sie den Befehl
exiftool VIDEOFILE
Die Ausgabe, die Sie erhalten, ist ähnlich wie diese:
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
Mit ffmpeg/ffprobe
den Befehl
ffprobe VIDEOFILE
alternativ:
ffmpeg -i VIDEOFILE
Die Ausgabe, die Sie erhalten, ist ähnlich, dies zu:
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)
mplayer Mit
den Befehl
mplayer -really-quiet -ao null -vo null -identify -frames 0 VIDEOFILE
Der Ausgang Sie ist erhalten ähnlich wie dies : Mit
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
Mediainfo
führen Sie den Befehl
mediainfo VIDEOFILE
Der Ausgang Sie diese ähnliche erhalten ist:
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
Zeit Zusammenfassung
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, aber ffprobe ist die schnellste, gefolgt von mediainfo dann MPlayer und exiftool schließlich
ffprobe < mediainfo < mplayer < exiftool
Verwendung 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
Siehe FFprobe Documentation und FFmpeg Wiki: FFprobe Tips.
Wenn Sie nur Interesse an der Auflösung sind:
ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width video.mkv
Es funktioniert auch auf Windows. Dies läuft jetzt auf meinem PC einen Index aller Dateien zu erstellen:
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
nur die Breite zurückzukehren und Höhe mediainfo ist ein ausgezeichnetes Werkzeug.
Mediainfo --Inform = "Video;% Breite%" Videodatei & & Mediainfo --Inform = "Video;% Height%" Videodatei wird genau das tun, nicht mehr, nicht weniger, für eine vast array of supported video files.
Es gibt eine lange Liste von nützlichen Inform=
Parameter, die Sie mit dem Befehl erhalten mediainfo --Info-Parameters
Wenn Sie die Ausgabe im Standard WidthXHeight Format verwenden möchten Width=$(mediainfo --Inform="Video;%Width%" Video.File)&& Height=$(mediainfo --Inform="Video;%Height%" Video.File)&&echo $Width"X"$Height
Quellen:
http://manpages.ubuntu.com/manpages/xenial/man1/mediainfo.1.html
Danke. Diese Antwort hat mir sehr geholfen. – Omid1989
Hier ist ein "fast-one-liner" ich um ffprobe zusammengebraut haben für genau diesen Zweck. Funktioniert ziemlich gut für mich sowohl auf Linux als auch auf 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. Wie lege ich eine Breite und eine Höhe auf die Breite und Höhe des Browserfensters fest?
- 2. Wie kann ich die Breite und Höhe einer Textzeichenfolge mit CAM :: PDF erhalten?
- 3. Wie bekomme ich Höhe und Breite von einer hochgeladenen Bilddatei
- 4. Mobile App-Entwicklung - Ausrichtung, Auflösung und Breite/Höhe
- 5. Wie erhalten Sie die Breite und Höhe eines mehrdimensionalen Arrays?
- 6. Android: Wie erhalten Sie eine benutzerdefinierte Ansicht Höhe und Breite?
- 7. Wie bekomme ich die Dauer einer Videodatei?
- 8. Kann ich die tatsächliche Breite und Höhe eines Textelements ermitteln?
- 9. Wie erhalten Sie Breite und Höhe von CreateWindowEx() Fenster? C++
- 10. Wie kann ich das html5 Video-Element Breite und Höhe
- 11. ASP.NET: Höhe und Breite eines Bildes erhalten
- 12. Wie kann ich die Breite und Höhe eines JavaFX-Labels erhalten?
- 13. Erhalten Sie die Breite und Höhe eines Bildes in node.js
- 14. Automatische Breite und Höhe Tag für Bild
- 15. Ich kann keine Videodatei in Emgu
- 16. Auflösung des mobilen Geräts (Breite, Höhe) Bildschirmgröße Header
- 17. Wie bekomme ich die Breite und Höhe eines android.widget.ImageView?
- 18. Wie ändere ich die benutzerdefinierte SurfaceView Breite und Höhe
- 19. Breite und Höhe eines WatchViewStub
- 20. Wie kann ich die Höhe eines UILabel anhand einer gewünschten Breite und Schrift finden?
- 21. setBound Breite und Höhe
- 22. WPF Bild Breite und Höhe Verhältnis
- 23. Bildmanipulation Breite und Höhe
- 24. Wie bekomme ich Breite und Höhe von RelativeLayout
- 25. Auto Breite und Höhe für SVG Bild
- 26. Dynamische Höhe und Breite für Knitrollen
- 27. Wie erhält man die Breite und Höhe des Geräts und die tatsächliche Breite und Höhe des Bildschirms?
- 28. Wie füge ich zwei Audiodateien und eine Videodatei mit C# in eine Videodatei ein?
- 29. Einstellen einer minimalen Breite und Höhe für BODY
- 30. UILabel feste Breite/feste Höhe erhalten Textnummer
http://askubuntu.com/questions/249828/command-to-see-media-file-info-in-terminal –