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

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

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

但是,如果我将这个逗号修改为这样的东西,

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

)

4

2 回答 2

1

尝试使用

-循环 1

-r 1/4

看看你会得到什么

于 2013-01-14T03:47:11.933 回答
0

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

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

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

于 2014-03-24T15:37:06.653 回答