When I try to convert a webm file to mp4 the output is very very choppy and it appears as if many frames have been dropped by ffmpeg
I used the following commands to convert
ffmpeg -i movie.webm movie.mp4 ffmpeg -i movie.webm -vcodec libx264 movie.mp4 ffmpeg -i movie.webm -vcodec libx264 -qscale 0 movie.mp4
All of them have the same problem. When I use ffprobe it seems to show the frames more or less properly.
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
Here write WebM. bat and hit enter. Next, the ffmpeg will begin converting your files to the MP4 format. Once the conversion of your files is done to MP4 format, users can find it in the “Output” folder which they have created earlier.
Basics of ffmpegThe output will be WebM encoded with VP9 with a pretty decent compression out of the box. If you wish to master the tool, you will have to learn how to use flags. For better visualization, I am going to show you how applying different options to ffmpeg decreases the file size and changes the quality.
Step 1 - Download VLC on your Windows/Mac and install it for further operations to convert WebM to MP4. Click Media on the top right corner, and select convert/save. You can also use the shortcut Ctrl+R to choose the files. Step 3 - Choose the files that you want to convert from WebM to MP4 with VLC.
As your input file report a strange frame rate value 1k fps
coming from the tbs and tbr value (look here for their definition)
the encoder generate a different result, 16k tbn, 1k tbc (default)
So by calling :
ffmpeg -fflags +genpts -i 1.webm -r 24 1.mp4
You configure ffmpeg to generate new pts (a.k.a Presentation TimeStamp) for each frame and you set the target frame-rate to 24.
So your output mp4 file info (ffmpeg -i ....
) change from
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
to
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With