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
)
答案 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