如何使用ffmpeg将webp图像转换为MP4视频

时间:2016-10-12 13:23:47

标签: ffmpeg mp4 video-encoding webp

我已经尝试了许多可能的命令行选项与ffmpeg,但是没有让它工作。我想将一系列webp图像转换为mp4视频。 我尝试过的一些命令是:

ffmpeg -i img%04d.webp out.mp4

ffmpeg -i img%04d.webp -c:v libx264 out.mp4

ffmpeg -i img%04d.webp -pix_fmt yuv420p out.mp4

ffmpeg -i img%04d.webp -c:v libx264 -pix_fmt yuv420p -crf 25 out.mp4

ffmpeg -i img%04d.webp -c:v libx264 -pix_fmt yuv420p -crf 25 -b:v 0 out.mp4

他们都没有制作mp4视频。但是,创建了一个mp4文件,但它是0秒。以下是其中一个执行的示例输出:

ffmpeg -i img%04d.webp -c:v libx264 -pix_fmt yuv420p -crf 25 -y out.mp4

ffmpeg version N-81045-g450cf40 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil      55. 28.100 / 55. 28.100
libavcodec     57. 50.100 / 57. 50.100
libavformat    57. 42.100 / 57. 42.100
libavdevice    57.  0.102 / 57.  0.102
libavfilter     6. 47.100 /  6. 47.100
  libswscale      4.  1.100 /  4.  1.100
libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, image2, from 'img%04d.webp':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0:0: Video: webp, yuva420p(tv, bt470bg/unknown/unknown), 320x568, 25 tbr, 25 tbn, 25 tbc
[libx264 @ 00000000006dbbc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 00000000006dbbc0] profile High, level 2.1
[libx264 @ 00000000006dbbc0] 264 - core 148 r2705 3f5ed56 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - 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=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[mp4 @ 00000000006d8700] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, mp4, to 'out.mp4':
Metadata:
encoder : Lavf57.42.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x568, q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc57.50.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
Stream #0:0 -> #0:0 (webp (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame= 1 fps=0.0 q=30.0 Lsize= 3kB time=00:00:00.00 bitrate=265435.9kbits/s speed=0.011x video:2kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 44.661823%
[libx264 @ 00000000006dbbc0] frame I:1     Avg QP:23.37  size:  1100
[libx264 @ 00000000006dbbc0] mb I  I16..4: 24.4% 71.5%  4.0%
[libx264 @ 00000000006dbbc0] 8x8 transform intra:71.5%
[libx264 @ 00000000006dbbc0] coded y,uvDC,uvAC intra: 6.1% 5.4% 4.2%
[libx264 @ 00000000006dbbc0] i16 v,h,dc,p: 80% 14%  6%  1%
[libx264 @ 00000000006dbbc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 46%  5% 48%  0%  0%  0%  0%  0%  0%
[libx264 @ 00000000006dbbc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 20% 42%  2%  2%  2%  2%  2%  3%
[libx264 @ 00000000006dbbc0] i8c dc,h,v,p: 89%  9%  1%  0%
[libx264 @ 00000000006dbbc0] kb/s:220.00

以上摘录:

frame=1 
fps=0.0
time=00:00:00.00
video:2kB

这应该让我知道我想说的是什么。

如果有人能说出如何将一系列网页图片转换为MP4视频,那么需要帮助。

2 个答案:

答案 0 :(得分:1)

FFmpeg仅检测序列中的一个图像。确保图像序列命名是连续的。

要查看仅编码第一张图像,请运行

ffmpeg -loop 1 -i img%04d.webp -t 5 out.mp4

这应该是第一张图片的5秒视频。

答案 1 :(得分:-1)

我的不好,只是没有专注于图像序列号......在你问之后,查看序列并发现它在某些地方突破...修复它,现在原始命令的作用就像一个魅力.. thanx