ffmpeg

2010-05-19 16 views
10

के साथ फ़ाइल के वीडियो कोडेक को कैसे पहचानें, मुझे अक्सर अपने टीवी डीवीडी प्लेयर के साथ एवीआई फ़ाइल पढ़ने में समस्या होती है यदि वे divx या xvid (DX50, i.e।, पठनीय नहीं हैं)।ffmpeg

मैं इन फ़ाइलों के वीडियो कोडेक पहचान करने के लिए इससे पहले कि सीडीरॉम/डीवीडी पर इसे जला एक तेजी से स्क्रिप्ट बनाने के लिए करना चाहते हैं।

आदेश:

ffmpeg -i file.avi 

वीडियो स्ट्रीम (mpeg4, mpeg2, आदि) के "कंटेनर" देते हैं, कोडेक नहीं।

कोई संकेत?

धन्यवाद

+0

पुन: पेश नहीं कर सकता। ffmpeg-0.5-5.20091026svn.fc12.x86_64 –

उत्तर

2

एफएफएमपीजी भी कोडेक देता है। Stream #0.0: Video लाइन खींचें और आप कोडेक देख सकते हैं। (ध्यान रखें कि यह तकनीकी रूप से 0.1 की तरह एक अलग स्ट्रीम नंबर हो सकता है।) नीचे दिया गया आउटपुट एमएस वीडियो -1 का उपयोग करता है। जैसे आप कंटेनर जो Input #0, avi

उदा .: से दर्शाया जाता है से, इच्छा

FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al. 
    configuration: --prefix=/opt/local --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libfaac --enable-libfaad --enable-libxvid --enable-libx264 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.2 --arch=x86_64 
    libavutil  49.15. 0/49.15. 0 
    libavcodec 52.20. 0/52.20. 0 
    libavformat 52.31. 0/52.31. 0 
    libavdevice 52. 1. 0/52. 1. 0 
    libavfilter 1. 4. 0/1. 4. 0 
    libswscale  1. 7. 1/1. 7. 1 
    libpostproc 51. 2. 0/51. 2. 0 
    built on Jan 8 2010 15:34:15, gcc: 4.2.1 (Apple Inc. build 5646) (dot 1) 
Input #0, avi, from 'Movies/fvss_demo.avi': 
    Duration: 00:02:00.30, start: 0.000000, bitrate: 719 kb/s 
    Stream #0.0: Video: msvideo1, rgb555, 160x120, 10 tbr, 10 tbn, 10 tbc 
    Stream #0.1: Audio: pcm_u8, 8000 Hz, mono, s16, 64 kb/s 
At least one output file must be specified 
manoa:~ stu$ 
2

बजाय MediaInfo प्रयास करें यह अलग है।

यह प्रत्येक स्ट्रीम के लिए कोडेक सूचीबद्ध करता है और इसके उत्पादन काफी सरल पार्स करने के लिए है - वहाँ भी है एक एक्सएमएल उत्पादन विकल्प है यदि आप प्रश्नों की तरह XPath पसंद करते हैं।

20

MediaInfo

mediainfo --Inform="Video;%Codec%" video.mkv 

होगा मेरे मामले वापसी:

How to find duration of a video file using mediainfo in seconds or other formats?

को
V_MPEG4/ISO/AVC 

उत्तर बनाया संभव धन्यवाद ffprobe (ffmpeg) आसान तरीका

मानते हुए अपने वीडियो में से एक है केवल वीडियो स्ट्रीम:

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \ 
    -of default=noprint_wrappers=1:nokey=1 video.mkv 

क्या मेरे मामले बदले में:

h264 

जवाब किए गए How to get video duration in seconds?

ffprobe (ffmpeg) गंदा तरीका

इस विधि को समझने के लिए आसान है लेकिन गंदा है संभव धन्यवाद।

फ़ाइल को वापस चलाए बिना कोडेक जानकारी प्राप्त करने के लिए, ffprobe का उपयोग करें।

$ ffprobe video.mkv 
[...] 
Input #0, matroska,webm, from 'video.mkv': 
    Metadata: 
    ENCODER   : Lavf56.25.101 
    Duration: 00:28:05.15, start: 0.000000, bitrate: 4353 kb/s 
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 1280x960, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default) 
    Metadata: 
     ENCODER   : Lavc56.26.100 libx264 
    Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default) 
    Metadata: 
     ENCODER   : Lavc56.26.100 libvorbis 

वीडियो कोडेक जानकारी निकालने के लिए - ffmpeg stderr को जानकारी भेजता है के बाद से - pipe और यह grep:

$ ffprobe video.mkv 2>&1 >/dev/null | grep Stream.*Video 
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 1280x960, SAR 1:1 DAR 4:3, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)

इस आगे भी कम करने के लिए, एसईडी परिचय:

$ ffprobe video.mkv 2>&1 >/dev/null |grep Stream.*Video | sed -e 's/.*Video: //' -e 's/[, ].*//' 
h264
+2

आप कुछ हद तक अस्पष्ट और अस्थिर sed/grep विकल्पों का उपयोग करने के बजाय -show_streams (और अन्य संबंधित विकल्प) का भी उपयोग कर सकते हैं। "ffprobe $ file -show_streams | grep^codec_name =" कोडेक आउटपुट देगा, लेकिन एक और आगे-संगत विधि में। –

0

ffmpeg पास है।

इस तरह पहली बार डाउनलोड ffmpeg:

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools 

और उसके बाद कमांड लाइन पर इस चलाएँ:

ffmpeg -filter:v idet \ 
    -frames:v 100 \ 
    -an \ 
    -f rawvideo -y /dev/null \ 
    -i ~/Downloads/yourfile.mp4 

तो उत्पादन में कुछ इस तरह के लिए जाँच मैक पर मैं इसे इस तरह से किया था :

अवधि: 00: 00: ०५.४८, शुरू: 0.०,००,०००, बिटरेट: 952 केबी/s स्ट्रीम # 0: 0 (इंग्लैंड): वीडियो: h264 (मुख्य) (avc1/0x31637661), yuv420p (टीवी, बीटी 70 9), 750x1334, 619 केबी/एस, 2 9.9 7 एफपीएस, 2 9.9 7 टीआरबी, 30 के टीबीएन, 59.9 4 टीबीसी (डिफ़ॉल्ट)