I am currently using FFMPEG v1.1 on CentOS 6.3.
I configured FFMPEG with:
./configure --arch=x86_64 --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libx264 --enable-pthreads --enable-gpl --enable-runtime-cpudetect
when I run a simple command to record live input to MP4 by:
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 /home/irdb/Desktop/test.mp4
I get nothing, just a grey screen with some artifacts around the edges. However when I run the same command as .MPG it comes out fine. I need it in MP4 format however.
On a side note I am running x264-0.120 installed through yum
My question is, is there a problem with the way I compiled ffmpeg? Or is it possibly something else?
edit:
Output from example as requested:
# ffmpeg -f video4linux2 -s 640x480 -t 5 -i /dev/video0 -strict 2 /home/irdb/Desktop/test.mp4
ffmpeg version N-50546-g1f5b5b8 Copyright (c) 2000-2013 the FFmpeg developers
built on Mar 7 2013 00:17:44 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
configuration: --enable-libmp3lame --enable-librtmp --enable-libtheora --enable- libvorbis --enable-libx264 --enable-pthreads --enable-gpl --enable-runtime-cpudetect
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[video4linux2,v4l2 # 0x3025120] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 128.640356, bitrate: 147456 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 147456 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
[libx264 # 0x3026f80] using cpu capabilities: MMX2 SSE2Fast SSEMisalign LZCNT
[libx264 # 0x3026f80] profile High 4:2:2, level 3.0, 4:2:2 8-bit
[libx264 # 0x3026f80] 264 - core 130 r2274 c832fe9 - 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=6 lookahead_threads=1 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 '/home/irdb/Desktop/test.mp4':
Metadata:
encoder : Lavf54.63.104
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv422p, 640x480, q=-1--1, 15360 tbn, 30 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> libx264)
Press [q] to stop, [?] for help
frame= 32 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A dup=21 drframe= 46 fps= 46 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A dup=28 drframe= 62 fps= 41 q=29.0 size= 71kB time=00:00:00.33 bitrate=1735.2kbits/frame= 76 fps= 38 q=29.0 size= 169kB time=00:00:00.80 bitrate=1731.2kbits/frame= 93 fps= 37 q=29.0 size= 311kB time=00:00:01.36 bitrate=1862.3kbits/frame= 107 fps= 35 q=29.0 size= 423kB time=00:00:01.83 bitrate=1891.0kbits/frame= 123 fps= 35 q=29.0 size= 537kB time=00:00:02.36 bitrate=1860.2kbits/frame= 139 fps= 34 q=29.0 size= 664kB time=00:00:02.90 bitrate=1876.0kbits/frame= 150 fps= 29 q=-1.0 Lsize= 1174kB time=00:00:04.93 bitrate=1948.7kbits/s dup=81 drop=0
video:1172kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.133409%
[libx264 # 0x3026f80] frame I:2 Avg QP:23.22 size: 28460
[libx264 # 0x3026f80] frame P:136 Avg QP:24.45 size: 8397
[libx264 # 0x3026f80] frame B:12 Avg QP:26.18 size: 42
[libx264 # 0x3026f80] consecutive B-frames: 88.0% 4.0% 0.0% 8.0%
[libx264 # 0x3026f80] mb I I16..4: 47.1% 28.8% 24.1%
[libx264 # 0x3026f80] mb P I16..4: 4.3% 1.9% 1.2% P16..4: 29.0% 11.4% 9.2% 0.0% 0.0% skip:43.0%
[libx264 # 0x3026f80] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 1.5% 0.0% 0.0% direct: 0.0% skip:98.5% L0:16.5% L1:83.5% BI: 0.0%
[libx264 # 0x3026f80] 8x8 transform intra:26.4% inter:30.7%
[libx264 # 0x3026f80] coded y,uvDC,uvAC intra: 85.2% 95.6% 83.5% inter: 10.9% 38.6% 24.0%
[libx264 # 0x3026f80] i16 v,h,dc,p: 33% 19% 40% 8%
[libx264 # 0x3026f80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 6% 12% 55% 5% 3% 4% 4% 3% 8%
[libx264 # 0x3026f80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 9% 63% 3% 2% 2% 2% 2% 2%
[libx264 # 0x3026f80] i8c dc,h,v,p: 66% 11% 14% 9%
[libx264 # 0x3026f80] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x3026f80] ref P L0: 56.6% 7.5% 8.1% 27.8%
[libx264 # 0x3026f80] ref B L0: 83.3% 16.7%
[libx264 # 0x3026f80] ref B L1: 90.7% 9.3%
[libx264 # 0x3026f80] kb/s:1918.95
Your output video's pixel format is probably unsupported in the player you're using to show the video. If you observe your output logs, you can see yuv422p being chosen as the format. That's a 4:2:2 subsampled chroma in a planar format.
Choosing -pix_fmt yuv420p (4:2:0 subsampling) should give you an H.264-encoded video that can be viewed everywhere.
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 \
-c:v libx264 -pix_fmt yuv420p /home/irdb/Desktop/test.mp4
I explicitly set the video codec here. Just a good habit to develop so as not to be surprised when FFmpeg defaults to another encoder for a format. For example, choosing an MPEG output format made FFmpeg choose another default encoder, MPEG-1 (mpeg1video), which uses 4:2:0 subsampling again.
Related
When trying to convert a .webm video (two colored animation) to a .mp4 video using ffmpeg (3.4.2 on mac) the result is somewhat blurry. I did research this topic and tried different approaches to solve this. Here is the most promising command:
ffmpeg -i vidoe.webm -qscale 1 video.mp4
However, the quality change is still tremendous, see the difference below.
webm
mp4
The resolution of the two videos is the same, however the size dropped from 24,3MB (.webm) to 1,5MB (.mp4) after conversion.
Update
Here is the log of the conversion.
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-jack --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, matroska,webm, from 'video.webm':
Metadata:
encoder : whammy
Duration: 00:00:05.02, start: 0.000000, bitrate: 38755 kb/s
Stream #0:0: Video: vp8, yuv420p(progressive), 1920x1080, SAR 1:1 DAR 16:9, 60 fps, 60 tbr, 1k tbn, 1k tbc (default)
Please use -q:a or -q:v, -qscale is ambiguous
Stream mapping:
Stream #0:0 -> #0:0 (vp8 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 # 0x7f8625800c00] -qscale is ignored, -crf is recommended.
[libx264 # 0x7f8625800c00] using SAR=1/1
[libx264 # 0x7f8625800c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 # 0x7f8625800c00] profile High, level 4.2
[libx264 # 0x7f8625800c00] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=6 lookahead_threads=1 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 'video.mp4':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 60 fps, 15360 tbn, 60 tbc (default)
Metadata:
encoder : Lavc57.107.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 301 fps= 45 q=-1.0 Lsize= 1417kB time=00:00:04.96 bitrate=2336.4kbits/s speed=0.735x
video:1412kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.309675%
[libx264 # 0x7f8625800c00] frame I:2 Avg QP:13.08 size: 8842
[libx264 # 0x7f8625800c00] frame P:75 Avg QP:24.29 size: 6785
[libx264 # 0x7f8625800c00] frame B:224 Avg QP:26.38 size: 4102
[libx264 # 0x7f8625800c00] consecutive B-frames: 0.7% 0.0% 1.0% 98.3%
[libx264 # 0x7f8625800c00] mb I I16..4: 68.1% 28.7% 3.2%
[libx264 # 0x7f8625800c00] mb P I16..4: 0.1% 2.2% 0.4% P16..4: 6.5% 4.0% 1.4% 0.0% 0.0% skip:85.4%
[libx264 # 0x7f8625800c00] mb B I16..4: 0.0% 0.2% 0.0% B16..8: 8.8% 3.0% 0.3% direct: 0.3% skip:87.3% L0:52.1% L1:47.5% BI: 0.4%
[libx264 # 0x7f8625800c00] 8x8 transform intra:57.7% inter:67.8%
[libx264 # 0x7f8625800c00] coded y,uvDC,uvAC intra: 25.7% 8.7% 0.9% inter: 3.9% 0.4% 0.0%
[libx264 # 0x7f8625800c00] i16 v,h,dc,p: 95% 2% 3% 0%
[libx264 # 0x7f8625800c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 5% 48% 5% 7% 6% 5% 4% 3%
[libx264 # 0x7f8625800c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 14% 31% 6% 7% 7% 6% 5% 4%
[libx264 # 0x7f8625800c00] i8c dc,h,v,p: 88% 6% 6% 0%
[libx264 # 0x7f8625800c00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x7f8625800c00] ref P L0: 55.3% 5.5% 24.8% 14.5%
[libx264 # 0x7f8625800c00] ref B L0: 75.6% 16.7% 7.7%
[libx264 # 0x7f8625800c00] ref B L1: 93.9% 6.1%
[libx264 # 0x7f8625800c00] kb/s:2304.86
Any idea on how to overcome this quality loss?
Changing -qscale 1 to -crf 1 resolves the quality issue. The working command is:
ffmpeg -i video.webm -crf 1 -c:v libx264 video.mp4
As outlined in the H.264 Video Encoding Guide -crf takes in values from 0 (lossless) to 51 (worst quality).
I am stuck at a very weird and complex problem, hoping if anyone know the solution:
I am converting user uploaded video using ffmpeg command on server and it was working fine as well. Today I found that if a video is recorded by a webcam from windows, is playing well in linux as well as on windows where as if user is creating a video by webcam from linux, is playing only on linux (any browser). On window it's screen either show loading icon or black screen while audio is working fine.
I am using following codec:
['-strict', '-2', '-preset slow', '-maxrate 500k', '-bufsize 1000k', vfOption, '-threads 0', '-ab 64k', '-movflags faststart','-vf scale=-1:480', '-metadata:s:v:0 rotate=0', '-vcodec libx264']
I work on linux and using html5 player on my website. I am converting video in mp4 format.
Input:
ffmpeg -i /<server path>/stream_FE2AF05B-E630-1F7B-390B-37325B31B362.flv -strict -2 -vcodec libx264 -preset slow -vb 500k -maxrate 500k -bufsize 1000k -vf 'scale=-1:480 ' -threads 0 -ab 64k -s 640x480 -movflags faststart -metadata:s:v:0 rotate=0 /<server path>/testing.mp4
Output:
ffmpeg version 2.2.5 Copyright (c) 2000-2014 the FFmpeg developers
built on Aug 1 2014 09:24:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libtheora --enable-libx264 --enable-libvpx --enable-libmp3lame
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, flv, from '/<server path>/stream_FE2AF05B-E630-1F7B-390B-37325B31B362.flv':
Metadata:
canSeekToEnd : true
Duration: 00:00:04.04, start: 0.000000, bitrate: 636 kb/s
Stream #0:0: Video: flv1, yuv420p, 640x480, 1k tbr, 1k tbn, 1k tbc
Stream #0:1: Audio: nellymoser, 44100 Hz, mono, flt
[libx264 # 0x23c5340] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 # 0x23c5340] profile High, level 5.2
[libx264 # 0x23c5340] 264 - core 142 r2453 ea0ca51 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 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=24 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=cbr mbtree=1 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=500 vbv_bufsize=1000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/<server path>/testing.mp4':
Metadata:
canSeekToEnd : true
encoder : Lavf55.33.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x480, q=-1--1, 500 kb/s, 16k tbn, 1k tbc
Metadata:
rotate : 0
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, mono, fltp, 64 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (flv -> libx264)
Stream #0:1 -> #0:1 (nellymoser -> aac)
Press [q] to stop, [?] for help
[mp4 # 0x23c0200] Starting second pass: moving the moov atom to the beginning of the file2 drop=0
frame= 4020 fps=706 q=-1.0 Lsize= 355kB time=00:00:04.08 bitrate= 712.0kbits/s dup=3931 drop=0
video:271kB audio:32kB subtitle:0 data:0 global headers:0kB muxing overhead 16.957901%
[libx264 # 0x23c5340] frame I:17 Avg QP:27.55 size: 7119
[libx264 # 0x23c5340] frame P:1013 Avg QP:25.37 size: 88
[libx264 # 0x23c5340] frame B:2990 Avg QP:27.32 size: 22
[libx264 # 0x23c5340] consecutive B-frames: 0.8% 0.0% 0.1% 99.1%
[libx264 # 0x23c5340] mb I I16..4: 42.0% 55.1% 2.9%
[libx264 # 0x23c5340] mb P I16..4: 0.3% 0.4% 0.0% P16..4: 0.6% 0.1% 0.0% 0.0% 0.0% skip:98.6%
[libx264 # 0x23c5340] 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:35.7% L1:64.3% BI: 0.0%
[libx264 # 0x23c5340] 8x8 transform intra:55.0% inter:84.5%
[libx264 # 0x23c5340] direct mvs spatial:87.6% temporal:12.4%
[libx264 # 0x23c5340] coded y,uvDC,uvAC intra: 33.4% 51.9% 0.7% inter: 0.0% 0.1% 0.0%
[libx264 # 0x23c5340] i16 v,h,dc,p: 26% 54% 15% 5%
[libx264 # 0x23c5340] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 16% 53% 3% 1% 2% 2% 3% 3%
[libx264 # 0x23c5340] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 20% 13% 14% 5% 7% 7% 11% 8%
[libx264 # 0x23c5340] i8c dc,h,v,p: 43% 31% 23% 3%
[libx264 # 0x23c5340] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x23c5340] ref P L0: 80.9% 9.0% 6.9% 2.6% 0.7%
[libx264 # 0x23c5340] ref B L0: 89.4% 8.6% 1.8% 0.2%
[libx264 # 0x23c5340] ref B L1: 91.0% 9.0%
[libx264 # 0x23c5340] kb/s:551.72
Outout from file recorded on window:
Input:
ffmpeg -i /<server path>/stream_window.flv -strict -2 -vcodec libx264 -preset slow -vb 500k -maxrate 500k -bufsize 1000k -vf 'scale=-1:480 ' -threads 0 -ab 64k -s 640x480 -movflags faststart -metadata:s:v:0 rotate=0 /<server path>/testing_1.mp4
Output:
ffmpeg version 2.2.5 Copyright (c) 2000-2014 the FFmpeg developers
built on Aug 1 2014 09:24:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libtheora --enable-libx264 --enable-libvpx --enable-libmp3lame
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, flv, from '/<server path>/stream_window.flv':
Metadata:
canSeekToEnd : true
Duration: 00:00:09.22, start: 0.000000, bitrate: 420 kb/s
Stream #0:0: Video: flv1, yuv420p, 640x480, 1k tbr, 1k tbn, 1k tbc
Stream #0:1: Audio: nellymoser, 44100 Hz, mono, flt
[libx264 # 0x1e09fc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 # 0x1e09fc0] profile High, level 5.2
[libx264 # 0x1e09fc0] 264 - core 142 r2453 ea0ca51 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 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=24 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=cbr mbtree=1 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=500 vbv_bufsize=1000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/<server path>/testing_1.mp4':
Metadata:
canSeekToEnd : true
encoder : Lavf55.33.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x480, q=-1--1, 500 kb/s, 16k tbn, 1k tbc
Metadata:
rotate : 0
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, mono, fltp, 64 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (flv -> libx264)
Stream #0:1 -> #0:1 (nellymoser -> aac)
Press [q] to stop, [?] for help
[mp4 # 0x1e06220] Starting second pass: moving the moov atom to the beginning of the file7 drop=0
frame= 8936 fps=703 q=-1.0 Lsize= 771kB time=00:00:09.26 bitrate= 681.5kbits/s dup=8907 drop=0
video:585kB audio:73kB subtitle:0 data:0 global headers:0kB muxing overhead 17.106213%
[libx264 # 0x1e09fc0] frame I:40 Avg QP:29.54 size: 7449
[libx264 # 0x1e09fc0] frame P:2248 Avg QP:30.88 size: 69
[libx264 # 0x1e09fc0] frame B:6648 Avg QP:39.17 size: 22
[libx264 # 0x1e09fc0] consecutive B-frames: 0.8% 0.0% 0.1% 99.1%
[libx264 # 0x1e09fc0] mb I I16..4: 36.8% 60.7% 2.5%
[libx264 # 0x1e09fc0] mb P I16..4: 0.2% 0.3% 0.0% P16..4: 0.4% 0.0% 0.0% 0.0% 0.0% skip:98.9%
[libx264 # 0x1e09fc0] 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:34.2% L1:65.8% BI: 0.0%
[libx264 # 0x1e09fc0] 8x8 transform intra:60.6% inter:87.6%
[libx264 # 0x1e09fc0] direct mvs spatial:72.8% temporal:27.2%
[libx264 # 0x1e09fc0] coded y,uvDC,uvAC intra: 36.3% 62.8% 4.7% inter: 0.0% 0.0% 0.0%
[libx264 # 0x1e09fc0] i16 v,h,dc,p: 33% 46% 15% 7%
[libx264 # 0x1e09fc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 19% 46% 3% 1% 1% 1% 2% 4%
[libx264 # 0x1e09fc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 17% 14% 9% 4% 4% 5% 5% 7%
[libx264 # 0x1e09fc0] i8c dc,h,v,p: 42% 31% 23% 4%
[libx264 # 0x1e09fc0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x1e09fc0] ref P L0: 82.6% 9.9% 5.2% 1.7% 0.5%
[libx264 # 0x1e09fc0] ref B L0: 87.1% 11.0% 1.4% 0.4%
[libx264 # 0x1e09fc0] ref B L1: 90.3% 9.7%
[libx264 # 0x1e09fc0] kb/s:536.03
Can anyone figure what could be the problem?
#LordNeckbeard: Please find the command and its output above. Thanks
I am trying to create a video out of one image and copy audio on top. Following this (last section), I tried:
$ ffmpeg -loop 1 -i img.jpg -i audio.mp3 -c:v libx264 -c:a copy -shortest h264.mp4
ffmpeg version 2.5.2 Copyright (c) 2000-2014 the FFmpeg developers
built on Feb 23 2015 10:29:52 with Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.5.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-libopus --enable-frei0r --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1_1/include/openjpeg-1.5 ' --enable-nonfree --enable-vda
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 13.100 / 56. 13.100
libavformat 56. 15.102 / 56. 15.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 2.103 / 5. 2.103
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, image2, from 'img.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 123986 kb/s
Stream #0:0: Video: mjpeg, yuvj440p(pc, bt470bg/unknown/unknown), 1440x900 [SAR 72:72 DAR 8:5], 25 fps, 25 tbr, 25 tbn, 25 tbc
[mp3 # 0x7f94d2034600] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, from 'audio.mp3':
Metadata:
genre : Other
Duration: 00:00:03.25, start: 0.000000, bitrate: 130 kb/s
Stream #1:0: Audio: mp3, 44100 Hz, mono, s16p, 128 kb/s
[swscaler # 0x7f94d2800000] deprecated pixel format used, make sure you did set range correctly
No pixel format specified, yuvj444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 # 0x7f94d281b200] using SAR=1/1
[libx264 # 0x7f94d281b200] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
[libx264 # 0x7f94d281b200] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
[libx264 # 0x7f94d281b200] 264 - core 142 r2455 021c0dc - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=4 threads=6 lookahead_threads=1 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 'h264.mp4':
Metadata:
encoder : Lavf56.15.102
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj444p(pc), 1440x900 [SAR 1:1 DAR 8:5], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc56.13.100 libx264
Stream #0:1: Audio: mp3 (i[0][0][0] / 0x0069), 44100 Hz, mono, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 64 fps= 30 q=28.0 size= 332kB time=00:00:00.48 bitrate=5670.9kbits/frame= 80 fps= 30 q=28.0 size= 344kB time=00:00:01.12 bitrate=2514.2kbits/frame= 96 fps= 30 q=28.0 size= 356kB time=00:00:01.76 bitrate=1655.1kbits/frame= 112 fps= 30 q=28.0 size= 367kB time=00:00:02.40 bitrate=1252.1kbits/frame= 129 fps= 31 q=28.0 size= 378kB time=00:00:03.08 bitrate=1006.5kbits/frame= 134 fps= 26 q=-1.0 Lsize= 386kB time=00:00:03.28 bitrate= 963.5kbits/s
video:331kB audio:51kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.120110%
[libx264 # 0x7f94d281b200] frame I:1 Avg QP:19.84 size:329471
[libx264 # 0x7f94d281b200] frame P:34 Avg QP:16.64 size: 189
[libx264 # 0x7f94d281b200] frame B:99 Avg QP:25.33 size: 48
[libx264 # 0x7f94d281b200] consecutive B-frames: 1.5% 0.0% 0.0% 98.5%
[libx264 # 0x7f94d281b200] mb I I16..4: 2.8% 70.0% 27.3%
[libx264 # 0x7f94d281b200] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 1.2% 0.0% 0.0% 0.0% 0.0% skip:98.8%
[libx264 # 0x7f94d281b200] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.0% 0.0% 0.0% direct: 0.0% skip:100.0% L0: 1.6% L1:98.4% BI: 0.0%
[libx264 # 0x7f94d281b200] 8x8 transform intra:70.0% inter:95.0%
[libx264 # 0x7f94d281b200] coded y,u,v intra: 96.4% 73.8% 72.9% inter: 0.0% 0.0% 0.0%
[libx264 # 0x7f94d281b200] i16 v,h,dc,p: 37% 4% 1% 58%
[libx264 # 0x7f94d281b200] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 27% 8% 3% 5% 5% 8% 4% 9%
[libx264 # 0x7f94d281b200] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 18% 5% 3% 7% 7% 10% 5% 7%
[libx264 # 0x7f94d281b200] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 # 0x7f94d281b200] ref P L0: 20.0% 0.4% 42.4% 37.2%
[libx264 # 0x7f94d281b200] ref B L0: 0.0% 100.0%
[libx264 # 0x7f94d281b200] ref B L1: 90.9% 9.1%
[libx264 # 0x7f94d281b200] kb/s:508.50
But I get a video with no audio in QuickTime. I think its a problem of the output container (mp4) not supporting mp3. What output container might be best? Due to quality loss, I am reluctant to convert the mp3 to another format. If my audio is mp3, what might I change about this ffmpeg command?
The final destination is YouTube.
Because YouTube is the final location you can ignore the other players:
Most non-FFmpeg based players can't decode yuvj444p. If you want the video in these other players to work, then add -pix_fmt yuv420p as an output option as mentioned in the console output.
Some players have trouble decoding MP3 in MP4 such as QuickTime and WMP with certain audio rates. If you need it to work in these players you'll need to re-encode to AAC audio by changing -c:a copy to -c:a aac.
Since the input is a single image you can reduce your frame rate for a much faster encoding by adding -framerate 1 as an input option. Again, some players may not be able to decode this frame rate.
YouTube can handle these potential issues, so feel free to upload it. See FFmpeg Wiki: YouTube for more info.
I have a bunch of .avi videos encoded with Lagarith codec. We would like to convert them in to a lossless .MP4 format so that they could be easily played on html. I want to keep video specifications remain the same if it's possible and just convert the video to MP4.
I tried WinFF and also some manually written FFmpeg codes [without any specific reference to the Lagarith codec] but they all create a video which is not playable (neither with Windows Player nor with the HTML5 player). Also, FFmpeg returns exceptions like bellow.
Edit:
Here is the FFmpeg code generated by WinFF, this code gives me the following Exception:
"C:\Program Files\WinFF\ffmpeg.exe" -y -i "C:\Desktop\Videos\input.avi" -f mp4 -r 29.97 -vcodec libx264 -preset slow -vf scale=640:480 -b:v 1000k -aspect 4:3 -flags +loop -cmp chroma -b:v 1250k -maxrate 1500k -bufsize 4M -bt 256k -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libvo_aacenc -b:a 112k -ar 48000 -ac 2 "C:\Desktop\Videos\output.mp4"
2nd Edit:
Here is the entire exception that I receive:
C:\Users\Desktop\Videos>"c:\Program Files\ffmpeg\bin\ffmpeg.exe" -y -i 300
4_KDSmall-08_02_2013-11_43_34_415.avi -crf 26 -vcodec libx264 -pix_fmt yuv420p -
acodec libvo_aacenc -ac 1 -ar 16000 -b:a 32000 3004_KDSmall-08_02_2013-11_43_34_
415.mp4
ffmpeg version N-62439-g5e379cd Copyright (c) 2000-2014 the FFmpeg developers
built on Apr 13 2014 22:08:47 with gcc 4.8.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable
-zlib
libavutil 52. 76.100 / 52. 76.100
libavcodec 55. 58.103 / 55. 58.103
libavformat 55. 37.100 / 55. 37.100
libavdevice 55. 13.100 / 55. 13.100
libavfilter 4. 4.100 / 4. 4.100
libswscale 2. 6.100 / 2. 6.100
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, avi, from '3004_KDSmall-08_02_2013-11_43_34_415.avi':
Duration: 00:15:00.00, start: 0.000000, bitrate: 328 kb/s
Stream #0:0: Video: lagarith (LAGS / 0x5347414C), rgb24, 320x244, 326 kb/s,
7.50 tbr, 7.50 tbn, 7.50 tbc
Codec AVOption b (set bitrate (in bits/s)) specified for output file #0 (3004_KD
Small-08_02_2013-11_43_34_415.mp4) has not been used for any stream. The most li
kely reason is either wrong type (e.g. a video option with no video streams) or
that it is a private option of some encoder which was not actually used for any
stream.
[libx264 # 0000000004288320] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
AVX
[libx264 # 0000000004288320] profile High, level 1.2
[libx264 # 0000000004288320] 264 - core 142 r2409 d6b4e63 - H.264/MPEG-4 AVC cod
ec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 r
ef=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_pski
p=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0 dec
imate=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=
7 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=26.0 qcomp=0.6
0 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '3004_KDSmall-08_02_2013-11_43_34_415.mp4':
Metadata:
encoder : Lavf55.37.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x24
4, q=-1--1, 15360 tbn, 7.50 tbc
Stream mapping:
Stream #0:0 -> #0:0 (lagarith -> libx264)
Press [q] to stop, [?] for help
frame= 1024 fps=0.0 q=27.0 size= 17kB time=00:02:08.80 bitrate= 1.1kbits/
frame= 1947 fps=1943 q=27.0 size= 234kB time=00:04:11.86 bitrate= 7.6kbits
frame= 2695 fps=1794 q=27.0 size= 659kB time=00:05:51.60 bitrate= 15.4kbits
frame= 3971 fps=1983 q=27.0 size= 680kB time=00:08:41.73 bitrate= 10.7kbits
frame= 5256 fps=2101 q=27.0 size= 702kB time=00:11:33.06 bitrate= 8.3kbits
frame= 6074 fps=2023 q=27.0 size= 1018kB time=00:13:22.13 bitrate= 10.4kbits
frame= 6343 fps=1810 q=27.0 size= 1625kB time=00:13:58.00 bitrate= 15.9kbits
frame= 6588 fps=1644 q=27.0 size= 2247kB time=00:14:30.66 bitrate= 21.1kbits
[lagarith # 0000000004378fc0] Unsupported Lagarith frame type: 0x24
[lagarith # 00000000043796c0] Unsupported Lagarith frame type: 0x38
[lagarith # 000000000437a700] Unsupported Lagarith frame type: 0x4c
[lagarith # 000000000437d740] Unsupported Lagarith frame type: 0x60
[lagarith # 000000000437e760] Unsupported Lagarith frame type: 0x74
[lagarith # 0000000007fcb800] Unsupported Lagarith frame type: 0x88
[lagarith # 0000000007fcc820] Unsupported Lagarith frame type: 0x9c
[lagarith # 0000000007fd0860] Unsupported Lagarith frame type: 0xb0
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
[lagarith # 0000000007fd0ce0] Unsupported Lagarith frame type: 0xc4
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
[lagarith # 0000000004378fc0] Unsupported Lagarith frame type: 0xd8
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
[lagarith # 00000000043796c0] Unsupported Lagarith frame type: 0xec
frame= 6750 fps=1524 q=-1.0 Lsize= 2881kB time=00:14:59.73 bitrate= 26.2kbit
s/s
video:2802kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: 2.842291%
[libx264 # 0000000004288320] frame I:29 Avg QP: 8.05 size: 2113
[libx264 # 0000000004288320] frame P:1874 Avg QP:11.85 size: 799
[libx264 # 0000000004288320] frame B:4847 Avg QP:13.60 size: 270
[libx264 # 0000000004288320] consecutive B-frames: 1.3% 6.0% 8.6% 84.1%
[libx264 # 0000000004288320] mb I I16..4: 82.8% 4.8% 12.4%
[libx264 # 0000000004288320] mb P I16..4: 0.2% 0.2% 0.3% P16..4: 5.5% 4.9
% 5.0% 0.0% 0.0% skip:84.0%
[libx264 # 0000000004288320] mb B I16..4: 0.0% 0.0% 0.1% B16..8: 2.9% 2.2
% 1.4% direct: 0.7% skip:92.7% L0:55.4% L1:38.8% BI: 5.8%
[libx264 # 0000000004288320] 8x8 transform intra:13.7% inter:12.4%
[libx264 # 0000000004288320] coded y,uvDC,uvAC intra: 21.9% 42.5% 34.9% inter: 2
.7% 5.4% 4.8%
[libx264 # 0000000004288320] i16 v,h,dc,p: 81% 9% 8% 2%
[libx264 # 0000000004288320] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 14% 49% 2% 3%
4% 3% 2% 2%
[libx264 # 0000000004288320] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 14% 34% 4% 4%
5% 4% 4% 3%
[libx264 # 0000000004288320] i8c dc,h,v,p: 72% 12% 12% 4%
[libx264 # 0000000004288320] Weighted P-Frames: Y:0.1% UV:0.1%
[libx264 # 0000000004288320] ref P L0: 42.5% 5.1% 29.3% 23.0%
[libx264 # 0000000004288320] ref B L0: 52.8% 37.8% 9.5%
[libx264 # 0000000004288320] ref B L1: 82.3% 17.7%
[libx264 # 0000000004288320] kb/s:25.50
Any body could help me easily doing this conversion?
I want to convert first few seconds (say 5 seconds) of a video to multiple output formats using ffmpeg.
when I Use this syntax to convert whole video, everything goes ok:
(to be simple, i left all options to be default)
ffmpeg -i input.flv output1.mp4 output2.avi
but when trying for just first 5 seconds using this syntax:
ffmpeg -t 5 -i input.flv output1.mp4 output2.avi
first output file (i.e ouptput1.mp4) is ok and it is 5 seconds length, but the second (and next outputs, if present) has a size of original file.
this is what ffmpeg prints out on the screen.
D:\ffmpeg\bin>ffmpeg -t 5 -i input.flv output1.mp4 output2.avi
ffmpeg version N-40301-gc1fe2db Copyright (c) 2000-2012 the FFmpeg developers
built on May 3 2012 11:40:38 with gcc 4.6.3
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-ru
ntime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass
--enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable
-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libope
njpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libth
eora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --e
nable-zlib
libavutil 51. 49.100 / 51. 49.100
libavcodec 54. 17.101 / 54. 17.101
libavformat 54. 3.100 / 54. 3.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 72.104 / 2. 72.104
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 11.100 / 0. 11.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, flv, from 'input.flv':
Duration: 00:00:37.00, start: 0.000000, bitrate: 366 kb/s
Stream #0:0: Video: flv1, yuv420p, 320x240, 300 kb/s, 29.97 tbr, 1k tbn, 1k
tbc
Stream #0:1: Audio: mp3, 22050 Hz, mono, s16, 56 kb/s
[buffer # 01de98c0] w:320 h:240 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:fl
ags=2
[buffer # 01dea4e0] w:320 h:240 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:fl
ags=2
[libx264 # 02b067a0] using cpu capabilities: MMX2 Cache64
[libx264 # 02b067a0] profile High, level 1.3
[libx264 # 02b067a0] 264 - core 120 r2164 da19765 - H.264/MPEG-4 AVC codec - Cop
yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
ma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_c
ompat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 we
ightb=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 'output1.mp4':
Metadata:
encoder : Lavf54.3.100
Stream #0:0: Video: h264 (![0][0][0] / 0x0021), yuv420p, 320x240, q=-1--1, 3
0k tbn, 29.97 tbc
Stream #0:1: Audio: aac (#[0][0][0] / 0x0040), 22050 Hz, mono, s16, 128 kb/s
Output #1, avi, to 'output2.avi':
Metadata:
ISFT : Lavf54.3.100
Stream #1:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 320x240, q=2-31, 200
kb/s, 29.97 tbn, 29.97 tbc
Stream #1:1: Audio: mp3 (U[0][0][0] / 0x0055), 22050 Hz, mono, s16
Stream mapping:
Stream #0:0 -> #0:0 (flv -> libx264)
Stream #0:1 -> #0:1 (mp3 -> libvo_aacenc)
Stream #0:0 -> #1:0 (flv -> mpeg4)
Stream #0:1 -> #1:1 (mp3 -> libmp3lame)
Press [q] to stop, [?] for help
frame= 48 fps=0.0 q=29.0 q=2.4 size= 8kB time=00:00:00.16 bitrate= 399.6
frame= 62 fps= 59 q=29.0 q=2.4 size= 32kB time=00:00:00.63 bitrate= 408.8
frame= 73 fps= 46 q=29.0 q=3.5 size= 57kB time=00:00:01.00 bitrate= 466.1
frame= 104 fps= 50 q=29.0 q=3.5 size= 87kB time=00:00:02.03 bitrate= 349.7
frame= 134 fps= 52 q=29.0 q=3.6 size= 113kB time=00:00:03.03 bitrate= 303.9
***frame= 150 fps= 49 q=29.0 q=2.4 size= 126kB time=00:00:03.57 bitrate= 289.3
frame= 150 fps= 42 q=29.0 q=8.8 size= 126kB time=00:00:03.57 bitrate= 289.3
frame= 150 fps= 37 q=29.0 q=6.9 size= 126kB time=00:00:03.57 bitrate= 289.3
frame= 150 fps= 33 q=29.0 q=9.7 size= 126kB time=00:00:03.57 bitrate= 289.3
frame= 150 fps= 29 q=29.0 q=6.0 size= 126kB time=00:00:03.57 bitrate= 289.3
frame= 150 fps= 27 q=29.0 q=11.2 size= 126kB time=00:00:03.57 bitrate= 289.***
frame= 150 fps= 24 q=29.0 Lq=11.0 size= 171kB time=00:00:04.93 bitrate= 283
.7kbits/s
video:1282kB audio:225kB global headers:0kB muxing overhead -88.650217%
[libx264 # 02b067a0] frame I:1 Avg QP:10.27 size: 74
[libx264 # 02b067a0] frame P:114 Avg QP:23.49 size: 727
[libx264 # 02b067a0] frame B:35 Avg QP:29.30 size: 124
[libx264 # 02b067a0] consecutive B-frames: 68.0% 2.7% 0.0% 29.3%
[libx264 # 02b067a0] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 # 02b067a0] mb P I16..4: 2.1% 3.2% 0.1% P16..4: 19.2% 5.1% 3.6%
0.0% 0.0% skip:66.6%
[libx264 # 02b067a0] mb B I16..4: 0.2% 0.5% 0.0% B16..8: 9.6% 1.2% 0.4%
direct: 0.6% skip:87.4% L0:46.1% L1:42.5% BI:11.4%
[libx264 # 02b067a0] 8x8 transform intra:51.7% inter:78.4%
[libx264 # 02b067a0] coded y,uvDC,uvAC intra: 29.8% 44.5% 10.3% inter: 8.9% 10.3
% 2.2%
[libx264 # 02b067a0] i16 v,h,dc,p: 52% 31% 16% 1%
[libx264 # 02b067a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 25% 45% 1% 0% 1% 0%
1% 3%
[libx264 # 02b067a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 48% 23% 2% 1% 2% 3%
2% 1%
[libx264 # 02b067a0] i8c dc,h,v,p: 54% 26% 16% 3%
[libx264 # 02b067a0] Weighted P-Frames: Y:2.6% UV:0.9%
[libx264 # 02b067a0] ref P L0: 79.8% 7.0% 9.6% 3.6% 0.0%
[libx264 # 02b067a0] ref B L0: 92.5% 6.7% 0.8%
[libx264 # 02b067a0] ref B L1: 96.8% 3.2%
[libx264 # 02b067a0] kb/s:139.51
D:\ffmpeg\bin>
How is the correct syntax to get all output files same size?
isn't this a bug with ffmpeg? (note last lines of conversion progress, which all timestamps look same)
thanks in advance.
You need to add output options for each output:
ffmpeg -i input.flv -t 5 output1.mp4 -t 5 output2.avi
Consider adding an additional option for output quality--especially for the avi as libx264, if available, is the default for mp4 and the default options for libx264 are sane.
ffmpeg -i input.flv -t 5 output1.mp4 -t 5 -qscale 3 output2.avi
See FFmpeg: The ultimate Video and Audio Manipulation Tool for more information on -qscale (also called -q:v).
To save having to specify every file name you can use a FOR loop. This saves all flv and mp4 files as avi files with their original file names to a "NEW" folder. For use in a bat/cmd file:
md NEW
FOR /F "tokens=*" %%G IN ('dir /b *.flv') DO ffmpeg -y -i "%%G" -t 5 "NEW\%%~nG.avi"
FOR /F "tokens=*" %%G IN ('dir /b *.mp4') DO ffmpeg -y -i "%%G" -t 5 "NEW\%%~nG.avi"