使用 PHP 创建视频文件

发布于 2024-11-05 07:46:01 字数 228 浏览 3 评论 0原文

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

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

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

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

I have scenario for creating a video files using diff. assets like images, audio file.

What I want to do is, Find audio files from the particular folder and set it as background music, and fetch images from particular folder and show those images one by one.

So basically I have images and audio files and I want create a video file using those assets using PHP.

Can any one please suggest the start up point for this? Have done image capture from video and converting the video using Ffmpeg so I have think of Ffmpeg but, I think it will not allow to create a video.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

明媚殇 2024-11-12 07:46:01

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

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

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 很痛苦(参数在版本之间以不兼容的方式更改,并且取决于它的编译方式),并且找到适合您的速率/压缩/分辨率设置是反复试验。

ffmpeg will allow you to create videos from still images.

For example, to create a video with a 10fps frame rate, from images 001.jpg .... 999.jpg:

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

You can mux streams (audio and video) like (add relevant codec options for bitrate, etc)

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

I'm not going to go into more detail, as ffmpeg is a pain (args change in incompatible ways between versions, and depending on how it was compiled), and finding a rate/compression/resolution setting that is good for you is trial-and-error.

酒浓于脸红 2024-11-12 07:46:01

在 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);

Under Ubuntu you need PHP5, ffmpeg and access to ffmpeg binary, this can be easy achieved with:

apt-get install php5 ffmpeg

I'm using this php function to generate an mp4 video from one gif image and one mp3 file, both source image and output video files are 720x576 pixels:

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);
}

example use:

$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);
別甾虛僞 2024-11-12 07:46:01

菲尔的解决方案是正确的做法。通过在 ffmpeg 上记录自己来弄清楚需要做什么(这很乱,我不能责怪他不想做你的作业),然后从 php 中调用它。

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

Phil's solution is the correct approach. Work out what needs to be done by documenting yourself on ffmpeg (it's messy, and I can't blame him for not wanting to do your homework), and then call it from within php.

Cursory googling reveals php wrappers (e.g. http://ffmpeg-php.sourceforge.net/). If none are recent/complete enough, stick to issuing the needed shell commands from php.

月隐月明月朦胧 2024-11-12 07:46:01
ImageMagick convert -delay 100 -quality 75 photo1.jpg photo2.jpg movie.mpg

或者

http://dvd-slideshow.sourceforge.net/wiki/Main_Page
ImageMagick convert -delay 100 -quality 75 photo1.jpg photo2.jpg movie.mpg

Or

http://dvd-slideshow.sourceforge.net/wiki/Main_Page
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文