使用PHP创建视频文件

时间:2011-05-05 03:25:54

标签: php video-capture video-processing

我有使用diff创建视频文件的场景。资产,如图像,音频文件。

我想要做的是,从特定文件夹中查找音频文件并将其设置为背景音乐,并从特定文件夹中获取图像并逐个显示这些图像。

所以基本上我有图像和音频文件,我想用PHP创建一个使用这些资源的视频文件。

任何人都可以为此建议启动点吗?已经完成了从视频中捕获图像并使用Ffmpeg转换视频,所以我想到了Ffmpeg,但我认为它不允许创建视频。

4 个答案:

答案 0 :(得分:17)

ffmpeg 允许您从静止图像创建视频。

例如,要创建一个帧速率为10fps的视频,请从图像001.jpg .... 999.jpg:

ffmpeg -r 10 -b 1800 -i %03d.jpg test1800.mp4

您可以复用流(音频和视频)(添加比特率的相关编解码器选项等)

ffmpeg -i video.mp4 -i audio.wav -map 1.1 -map 2.1 output.mp4

我不打算详细介绍,因为ffmpeg是一种痛苦(args在版本之间以不兼容的方式改变,并且取决于它是如何编译的),并找到适合的速率/压缩/分辨率设置你是反复试验。

答案 1 :(得分:5)

在Ubuntu下你需要PHP5,ffmpeg并访问ffmpeg二进制文件,这可以通过以下方式轻松实现:

apt-get install php5 ffmpeg

我正在使用这个php函数从一个gif图像和一个mp3文件生成一个mp4视频,源图像和输出视频文件都是720x576像素:

function mix_video($audio_file, $img_file, $video_file) {
    $mix = "ffmpeg -loop_input -i " . $img_file . " -i " . $audio_file . " -vcodec mpeg4 -s 720x576 -b 10k -r 1 -acodec copy -shortest " . $video_file;
    exec($mix);
}

使用示例:

$audio_file = "/path/to/mp3-file";
$img_file = "/path/to/img-file";
$video_file = "/path/to/video-file";

mix_video($audio_file, $img_file, $video_file);

答案 2 :(得分:4)

菲尔的解决方案是正确的方法。通过在ffmpeg上记录自己来解决需要做的事情(这很麻烦,我不能责怪他不想做你的功课),然后在php中调用它。

粗略的谷歌搜索揭示了php包装器(例如http://ffmpeg-php.sourceforge.net/)。如果没有最新/足够的,请坚持从php发出所需的shell命令。

答案 3 :(得分:3)

ImageMagick convert -delay 100 -quality 75 photo1.jpg photo2.jpg movie.mpg

或者

http://dvd-slideshow.sourceforge.net/wiki/Main_Page