Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

webm to mp4 conversion using ffmpeg

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 
like image 449
Pavan K Avatar asked Aug 08 '13 10:08

Pavan K


People also ask

Can ffmpeg convert WebM to MP4?

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.

Can Ffmpeg use WebM?

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.

Can VLC convert WebM to MP4?

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.


1 Answers

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 
like image 50
alexbuisson Avatar answered Sep 27 '22 23:09

alexbuisson