博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

php FFmpeg插件dome

前端使用vue 该文件改于 https://juejin.im/post/5b6960d8e51d4519115d5d2f 提供的vue页面

修改后的 地址 https://github.com/August-the-feel/FFmpeg.git

修改内容 : 进行 http 请求页面 使用php-FFmpeg插件进行裁剪 截图

 

裁剪

复制代码
 1 public function actionShearedit()
 2 {
 3     $ffmpeg = FFMpeg::create(array(
 4         'ffmpeg.binaries' => '/www/ffmpeg/bin/ffmpeg', //ffmpeg插件在服务器的位置
 5         'ffprobe.binaries' => '/www/ffmpeg/bin/ffprobe', //ffprobe插件在服务器的位置
 6         'timeout' => 3600, // The timeout for the underlying process
 7         'ffmpeg.threads' => 12,   // The number of threads that FFMpeg should use
 8     ), $logger);
 9     $video_file = $model->base_url;
10     $ffprobe_prep = FFProbe::create([
11         'ffmpeg.binaries' => '/www/ffmpeg/bin/ffmpeg', //ffmpeg插件在服务器的位置
12         'ffprobe.binaries' => '/www/ffmpeg/bin/ffprobe', //ffprobe插件在服务器的位置
13     ]);
14     $first = $ffprobe_prep->streams($video_file)->videos()->first();
15     $start = $startTime;//开始时间
16     $end = $endTime;//结束时间
17     $start_time = gmstrftime('%H:%M:%S', $start);//将长度转换为秒数
18 $process_time = $end - $start;//持续时间 19 $hosturl = ($this->isHTTPS() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST']; 20 $fileurl = '/attachment/ffmpeg_videos/'.substr($video_file,strrpos($video_file, '/')+1); 21 $shell = 'ffmpeg -ss ' . $start_time . ' -i ' . $video_file . ' -to ' . $process_time . ' -c copy '.$_SERVER['DOCUMENT_ROOT'].$fileurl; 23 shell_exec($shell);47 if($sign){ 48 return 2; 49 }else{ 50 return 1; 51  } 52 } 53 private function isHTTPS() 54 { 55 if (defined('HTTPS') && HTTPS) return true; 56 if (!isset($_SERVER)) return FALSE; 57 if (!isset($_SERVER['HTTPS'])) return FALSE; 58 if ($_SERVER['HTTPS'] === 1) { //Apache 59 return TRUE; 60 } elseif ($_SERVER['HTTPS'] === 'on') { //IIS 61 return TRUE; 62 } elseif ($_SERVER['SERVER_PORT'] == 443) { //其他 63 return TRUE; 64  } 65 return FALSE; 66 }
复制代码

截图(截图某一秒)

复制代码
 1 /**
 2      * description: 返回视频裁剪 选择秒的画面
 3      * create by: 八月情
 4      * create time: 2021-01-15 15:30
 5      * environment: localhost
 6      */
 7     public function actionLookoppic()
 8 12         $ffmpeg = FFMpeg::create(array(
13             'ffmpeg.binaries' => '/usr/bin/ffmpeg',//linux 安装ffmpeg的位置 可以通过 which ffmpeg 进行查看
14             'ffprobe.binaries' => '/usr//bin/ffprobe',//linux 安装ffprobe的位置 可以通过 which ffprobe 进行查看
15             'timeout' => 3600, // The timeout for the underlying process
16             'ffmpeg.threads' => 12,   // The number of threads that FFMpeg should use
17         ), $logger);
18 
19         $video = $ffmpeg->open('文件路径');
20 
21         $video_file = $model->base_url;
22         $ffprobe_prep = FFProbe::create([
23             'ffmpeg.binaries' => '/usr/bin/ffmpeg',//linux 安装ffmpeg的位置 可以通过 which ffmpeg 进行查看
24             'ffprobe.binaries' => '/usr//bin/ffprobe',//linux 安装ffprobe的位置 可以通过 which ffprobe 进行查看
25             ]);
26         $first = $ffprobe_prep->streams($video_file)->videos()->first();
27         $time = $first->get('duration', null);//获取视频长度
28         $start = $first->get('start', null);//接受视频的时间
29         $start_time = gmstrftime('%H:%M:%S', $start);//将长度转换为秒数
30         $frame = $video->frame(TimeCode::fromSeconds($start_time)); //提取第几秒的图像37     }
复制代码

 

实测可以用 具体内容根据自己的需求修改 该文章仅提供参考  

Linux安装FFmpeg插件 查看 https://www.cnblogs.com/ForAll-I-Care/p/14428358.html

php-ffmpeg/php-ffmpeg 地址 composer require php-ffmpeg/php-ffmpeg

 

 

posted @   八月情  阅读(172)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示