FFMPEG - 图像到视频

时间:2013-01-12 18:41:42

标签: php linux ffmpeg

ffmpeg -f image2 -r 15 -i images/img%03d.jpg -vcodec libx264 video.mp4

我在php中使用exec运行此代码。

我没有得到输出。 video.mp4是空白的。

但是如果我将这个commade修改成这样的话,

ffmpeg -f image2 -i i.jpg -vcodec libx264 -t 15 video.mp4

视频正在运行15秒。

我尝试了 -r 1/15 。它也不起作用。 我在哪里犯错误?

<?php
$command = "/usr/bin/ffmpeg -f image2 -r 15 -i images/img%03d.jpg -vcodec libx264 video.mp4";
exec($command);
?>

图片文件夹有img001.jpg img002.jpg ... img005.jpg

Array
(
[0] => ffmpeg version N-48645-gf3c9d8d Copyright (c) 2000-2013 the FFmpeg developers
[1] =>   built on Jan  9 2013 04:08:32 with gcc 4.7 (Debian 4.7.2-5)
[2] =>   configuration: --extra-cflags=-I../static/include --extra-ldflags='-L../static/lib -static' --enable-gpl --enable-version3 --enable-static --disable-shared --disable-debug --enable-runtime-cpudetect --disable-x11grab --enable-libmp3lame --enable-libx264 --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --disable-ffserver
[3] =>   libavutil      52. 13.100 / 52. 13.100
[4] =>   libavcodec     54. 86.100 / 54. 86.100
[5] =>   libavformat    54. 59.106 / 54. 59.106
[6] =>   libavdevice    54.  3.102 / 54.  3.102
[7] =>   libavfilter     3. 32.100 /  3. 32.100
[8] =>   libswscale      2.  1.103 /  2.  1.103
[9] =>   libswresample   0. 17.102 /  0. 17.102
[10] =>   libpostproc    52.  2.100 / 52.  2.100
[11] => Input #0, image2, from 'images/img%03d.jpg':
[12] =>   Duration: 00:00:45.00, start: 0.000000, bitrate: N/A
[13] =>     Stream #0:0: Video: mjpeg, yuvj420p, 200x300 [SAR 1:1 DAR 2:3], 0.07 fps, 0.33 tbr, 0.07 tbn, 0.07 tbc
[14] => [libx264 @ 0x3283080] using SAR=1/1
[15] => [libx264 @ 0x3283080] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[16] => [libx264 @ 0x3283080] profile High, level 1.2
[17] => [libx264 @ 0x3283080] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - 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=1 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
[18] => Output #0, mp4, to 'videos/video.mp4':
[19] =>   Metadata:
[20] =>     encoder         : Lavf54.59.106
[21] =>     Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuvj420p, 200x300 [SAR 1:1 DAR 2:3], q=-1--1, 16384 tbn, 0.07 tbc
[22] => Stream mapping:
[23] =>   Stream #0:0 -> #0:0 (mjpeg -> libx264)
[24] => Press [q] to stop, [?] for help
[25] => Input stream #0:0 frame changed from size:200x300 fmt:yuvj420p to size:200x300 fmt:yuvj444p
[26] => frame=    3 fps=0.0 q=-1.0 Lsize=      43kB time=00:00:15.00 bitrate=  23.2kbits/s
[27] => video:42kB audio:0kB subtitle:0 global headers:0kB muxing overhead 1.912722%
[28] => [libx264 @ 0x3283080] frame I:1     Avg QP:18.97  size: 13250
[29] => [libx264 @ 0x3283080] frame P:2     Avg QP:18.68  size: 14368
[30] => [libx264 @ 0x3283080] mb I  I16..4:  0.8% 81.4% 17.8%
[31] => [libx264 @ 0x3283080] mb P  I16..4:  0.0% 84.8% 15.2%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip: 0.0%
[32] => [libx264 @ 0x3283080] 8x8 transform intra:83.7%
[33] => [libx264 @ 0x3283080] coded y,uvDC,uvAC intra: 96.4% 99.2% 97.6%
[34] => [libx264 @ 0x3283080] i16 v,h,dc,p:  0%  0% 100%  0%
[35] => [libx264 @ 0x3283080] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 18% 13%  5%  8% 11%  8% 10%  7%
[36] => [libx264 @ 0x3283080] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 14%  9%  7%  9% 13%  8%  7%  7%
[37] => [libx264 @ 0x3283080] i8c dc,h,v,p: 45% 17% 26% 12%
[38] => [libx264 @ 0x3283080] Weighted P-Frames: Y:0.0% UV:0.0%
[39] => [libx264 @ 0x3283080] kb/s:7.46

2 个答案:

答案 0 :(得分:1)

尝试使用

-loop 1

-r 1/4

然后看看你得到了什么

答案 1 :(得分:0)

强制输入(在-i之前)和输出(在输出文件名之前)的帧速率仅在您使用原始输入文件(例如h.264比特流)时可靠地工作,您明确需要告诉FFmpeg什么帧你期望的速度。

您应该为image2使用的实际选项是-framerate:

ffmpeg -framerate 25 -i thum-%04d.jpg -r 25 -c:v libx264 out1.mp4