php - 通过 FFmpeg 和 PHP 创建目录中所有文件的视频缩略图

标签 php linux ffmpeg ffmpeg-php video-thumbnails

我已经搜索了整个 Google 和 StackOverFlow,但仍然没有找到解决方案。

我想生成目录中所有mp4视频文件的视频缩略图并将缩略图命名为“filename.mp4”.jpg

我的服务器上安装了 ffmpeg 和 ffmpeg-php。我还成功地一次创建了一个文件的缩略图。

情况是这样的,我有一个名为 uploads 的目录,里面有很多 mp4 视频。 现在,当我运行脚本时,应该自动创建大小为 100x100 的缩略图并将其放置在另一个文件夹“skrin”中。例如:xxx.mp4 应该有 xxx.mp4.jpg 有拇指名称。

重要提示:我的文件名中有空格、单引号、方括号等。所以脚本应该能够处理这个问题。

有人可以帮助我吗?我在 php 中使用以下 shell 命令使用 exec 生成单个视频的缩略图。

exec("/usr/local/bin/ffmpeg -itsoffset -105 -i 'xxx haha.mp4' -vcodec mjpeg -vframes 1 -an -f rawvideo -s 100x100 'xxx haha.mp4.jpg'");

最佳答案

这只是一个快速的:

$videos_dir = 'path/to/videos';
$videos_dir = opendir($videos_dir);
$output_dir = 'path/to/output/dir/';
while (false !== ($file = readdir($videos_dir))) {
    if ($file != '.' && $file != '..'){
        $in = $videos_dir.'/'.$file;
        $out = $output_dir.$file.'.jpg';
        exec("/usr/local/bin/ffmpeg -itsoffset -105 -i ".$in." -vcodec mjpeg -vframes 1 -an -f rawvideo -s 100x100 ".$out);
    }
}

关于php - 通过 FFmpeg 和 PHP 创建目录中所有文件的视频缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9107710/

相关文章:

php - 为什么我的 ffmpeg 转换为 .avi 格式后无法播放

php - Yii CUserIdentity 与用户模型

php - Symfony2 - 如何删除/移动实体?

mysql - 将 mysql 数据分布到多个磁盘

javascript - 如何在 Chrome 浏览器中从 MediaStream 制作 mp4

ffmpeg - 如何计算 ffmpeg 输出文件的大小?

php - 检查字符串是否以数组值开头

php - 如何在 mySQL 中动态更改限制

linux - 输入 SSH 命令不会换行

linux - 可以更改动态 libc.so 地址吗?