2013-08-08 4 views
28

का उपयोग करते समय मैं MP4 करने के लिए उत्पादन बहुत बहुत अस्थिर है एक webm फ़ाइल बदलने की कोशिश और ऐसा लगता है जैसे कि कई फ्रेमwebm ffmpeg

ffmpeg द्वारा गिरा दिया है मैं निम्न कमांड का इस्तेमाल किया

कन्वर्ट करने के लिए
ffmpeg -i movie.webm movie.mp4 
ffmpeg -i movie.webm -vcodec libx264 movie.mp4 
ffmpeg -i movie.webm -vcodec libx264 -qscale 0 movie.mp4 

उनमें से सभी एक ही समस्या है। जब मैं ffprobe का उपयोग करता हूं तो यह फ्रेम को कम या ज्यादा ठीक से दिखाना प्रतीत होता है।

अद्यतन:

built on Jun 14 2013 14:31:50 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1) 
    configuration: --prefix=/home/user2/ffmpeg_build --extra-cflags=-I/home/user2/ffmpeg_build/include --extra-ldflags=-L/home/pavan4/ffmpeg_build/lib --bindir=/home/pavan4/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab 
    libavutil  52. 35.101/52. 35.101 
    libavcodec  55. 16.100/55. 16.100 
    libavformat 55. 8.102/55. 8.102 
    libavdevice 55. 2.100/55. 2.100 
    libavfilter  3. 77.101/3. 77.101 
    libswscale  2. 3.100/2. 3.100 
    libswresample 0. 17.102/0. 17.102 
    libpostproc 52. 3.100/52. 3.100 
Hyper fast Audio and Video encoder 
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 

Use -h to get full help or, even better, run 'man ffmpeg' 

Input #0, matroska,webm, from '1.webm': 
    Duration: 00:00:10.64, start: 0.000000, bitrate: 5024 kb/s 
    Stream #0:0(eng): Video: vp8, yuv420p, 1280x720, SAR 1:1 DAR 16:9, 1k fps, 1k tbr, 1k tbn, 1k tbc (default) 
[libx264 @ 0x1d966a0] using SAR=1/1 
[libx264 @ 0x1d966a0] MB rate (3600000) > level limit (2073600) 
[libx264 @ 0x1d966a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 
[libx264 @ 0x1d966a0] profile High, level 5.2 
[libx264 @ 0x1d966a0] 264 - core 133 r2 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 
Output #0, mp4, to '1_conv4.mp4': 
    Metadata: 
    encoder   : Lavf55.8.102 
    Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0]/0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 16k tbn, 1k tbc (default) 
Stream mapping: 
Stream #0:0 -> #0:0 (vp8 -> libx264) 
Press [q] to stop, [?] for help 
frame= 168 fps=0.0 q=33.0 size=  62kB time=00:00:00.11 bitrate=4606.0kbits/frame= 293 fps=230 q=33.0 size=  138kB time=00:00:00.23 bitrate=4809.7kbits/ 

video:5620kB audio:0kB subtitle:0 global headers:0kB muxing overhead 2.212461% 
[libx264 @ 0x1d966a0] frame I:46 Avg QP:18.50 size: 39849 
[libx264 @ 0x1d966a0] frame P:2940 Avg QP:18.27 size: 1222 
[libx264 @ 0x1d966a0] frame B:7651 Avg QP:17.68 size: 43 
[libx264 @ 0x1d966a0] consecutive B-frames: 4.0% 0.2% 0.3% 95.5% 
[libx264 @ 0x1d966a0] mb I I16..4: 19.9% 63.2% 16.9% 
[libx264 @ 0x1d966a0] mb P I16..4: 0.2% 0.5% 0.1% P16..4: 3.9% 1.1% 0.6% 0.0% 0.0% skip:93.6% 
[libx264 @ 0x1d966a0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.2% 0.0% 0.0% direct: 0.0% skip:99.8% L0:25.1% L1:74.9% BI: 0.0% 
[libx264 @ 0x1d966a0] 8x8 transform intra:63.6% inter:75.9% 
[libx264 @ 0x1d966a0] coded y,uvDC,uvAC intra: 61.5% 53.4% 24.4% inter: 0.5% 0.5% 0.0% 
[libx264 @ 0x1d966a0] i16 v,h,dc,p: 52% 19% 19% 11% 
[libx264 @ 0x1d966a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 17% 13% 4% 6% 9% 5% 8% 6% 
[libx264 @ 0x1d966a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 18% 14% 5% 8% 10% 6% 6% 3% 
[libx264 @ 0x1d966a0] i8c dc,h,v,p: 55% 17% 24% 4% 
[libx264 @ 0x1d966a0] Weighted P-Frames: Y:0.0% UV:0.0% 
[libx264 @ 0x1d966a0] ref P L0: 82.5% 13.2% 4.0% 0.3% 
[libx264 @ 0x1d966a0] ref B L0: 60.2% 39.2% 0.6% 
[libx264 @ 0x1d966a0] ref B L1: 98.5% 1.5% 
[libx264 @ 0x1d966a0] kb/s:4327.77 
+0

करने के लिए "कैसे पूछने के लिए", अपने ffmpeg कमांड लाइन उत्पादन का कम से कम एक जोड़ने कृपया ffmpeg संस्करण देखने के लिए के बारे में एक सामान्य टिप्पणी से बदल सकते हैं और अपने इनपुट फ़ाइल स्ट्रीम के बारे में सभी शेष जानकारी आपके आउटपुट में फ़ाइल स्ट्रीम मैपिंग। – alexbuisson

+0

@alexbuisson मैंने पोस्ट अपडेट किया :) मैंने सोचा कि मैं कुछ तुच्छ कर रहा था इसलिए आउटपुट नहीं जोड़ा। –

+0

यह इतना छोटा नहीं होना चाहिए, मैंने एफएमपीपीईजी के साथ उसी प्रकार का रूपांतरण चलाया, जिसे 4 जून 2013 01:41:53 पर जीसीसी 4.7.3 (जीसीसी) के साथ बनाया गया था, आउटपुट पर एमपी 4 में सही गुणवत्ता है । पता नहीं कैसे मदद करें :( – alexbuisson

उत्तर

42

अपने इनपुट फ़ाइल रिपोर्ट के रूप में एक अजीब फ्रेम दर मूल्य 1k fps टीबीएस और TBR मूल्य से आ रही (देखो here for their definition)

एनकोडर एक अलग परिणाम उत्पन्न करते हैं, 16k tbn, 1k tbc (default)

तो कॉल करके:

ffmpeg -fflags +genpts -i 1.webm -r 24 1.mp4 

आप ffmpeg कॉन्फ़िगर प्रत्येक फ्रेम के लिए नए अंक (एक/ka प्रस्तुति टाइमस्टैम्प) उत्पन्न करने के लिए और आप 24.

को लक्ष्य फ्रेम दर निर्धारित तो अपने उत्पादन mp4 फ़ाइल जानकारी (ffmpeg मैं ....)

Stream #0:0(eng): Video: h264 (High) (avc1/0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 4327 kb/s, 1000.09 fps, 1k tbr, 16k tbn, 2k tbc 

Stream #0:0(eng): Video: h264 (High) (avc1/0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1670 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc 
+0

मैंने अभी यह देखा है कि mp4 ffmpeg के लिए स्वचालित रूप से बिटरेट को 2 एम में बदल देता है जबकि स्रोत चालू होता है 5 एम। क्या मैं स्वचालित रूप से स्रोत से चुने जाने वाले बिटरेट को सेट कर सकता हूं? –

+0

कोई विचार नहीं, यह एसओएफ और सुपर यूज़र पर एक आवर्ती प्रश्न है, लेकिन फिर से पूछें कि किसी के पास समाधान हो सकता है, मेरी तरफ से मैं प्रत्येक पंक्ति को एक स्क्रिप्ट में रखूंगा, पहले एक एफएफएमपी चलाएं उदाहरण के लिए- इनपुट पर, बिटरेट को खोजने के लिए कमांड लाइन आउटपुट को पकड़ना और पार्स करना, और उस मान को पुन: उपयोग करने के बाद '-b: v' मान को ट्रांसकोड पर सेट करें ... – alexbuisson

+0

यह mp4 फ़ाइल ब्राउज़र पर बजाने योग्य नहीं है, क्यों? –