2013-08-08 23 views
28

Wenn ich versuche, eine webm-Datei zu konvertieren die Ausgabe in MP4 sehr sehr abgehackt und es scheint, als ob viele Bilder werden von ffmpegwebm zu mp4 Umwandlung ffmpeg mit

ich die folgenden Befehle verwendet fallen gelassen worden zu konvertieren

ffmpeg -i movie.webm movie.mp4 
ffmpeg -i movie.webm -vcodec libx264 movie.mp4 
ffmpeg -i movie.webm -vcodec libx264 -qscale 0 movie.mp4 

Alle von ihnen haben das gleiche Problem. Wenn ich ffprobe verwende, scheint es die Frames mehr oder weniger korrekt zu zeigen.

UPDATE:

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

einer allgemeinen Bemerkung über „wie fragen“, fügen Sie bitte mindestens eines Ihrer ffmpeg Kommandozeile Ausgabe ffmpeg-Version und alle übrigen Informationen über die Eingabedatei Stream zu sehen zu deiner Ausgabe Datei-Stream-Zuordnung. – alexbuisson

+0

@alexbuisson Ich habe den Post aktualisiert :) Ich dachte, ich würde etwas Triviales machen, also habe ich die Ausgabe nicht hinzugefügt. –

+0

sollte es nicht so trivial sein, ich lief nur die gleiche Art der Konvertierung mit ffmpeg 'gebaut am 4. Juni 2013 01:41:53 mit gcc 4.7.3 (GCC)' ohne Problem, mp4 auf dem Ausgang haben eine korrekte Qualität . Ich weiß nicht, wie ich helfen kann :( – alexbuisson

Antwort

42

Als Eingabedatei Bericht ein seltsamer Ratenwert Rahmen 1k fps aus dem tbs und TBR-Wert (sehen here for their definition)

der Encoder ein anderes Ergebnis erzeugen, 16k tbn, 1k tbc (default)

So durch den Aufruf:

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

Sie ffmpeg konfigurieren, dass neue Punkte (a/ka Präsentation Timestamp) für jeden Rahmen zu erzeugen, und stellen Sie die Ziel Frame-Rate auf 24

So Ihre Ausgabe mp4-Datei info (ffmpeg -i ....) Wechsel von

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 

zu

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

Ich habe gerade festgestellt, dass für die mp4 ffmpeg automatisch die Bitrate auf 2M ändert, während die Quelle ist 5M Kann ich die Bitrate automatisch so einstellen, dass sie aus der Quelle ausgewählt wird? –

+0

keine Ahnung, es ist eine wiederkehrende Frage zu SOF und SuperUser, aber frage nochmal jemand kann eine Lösung haben, auf meiner Seite würde ich jede Zeile in ein Skript stellen starte zuerst ein ffmp zB -i auf der Eingabe, Abfangen und Parsing der Kommandozeilen-Ausgabe, um die Bitrate zu finden, und nach der Wiederverwendung dieses Wertes die '-b: v' Wert zu transcodieren ... – alexbuisson

+0

diese mp4-Datei ist nicht im Browser abspielbar, warum? –

Verwandte Themen