PHP使用ffmpeg给视频增加字幕显示的方法


Posted in PHP onMarch 12, 2015

本文实例讲述了PHP使用ffmpeg给视频增加字幕显示的方法。分享给大家供大家参考。具体实现方法如下:

<?php

$dir = './'; // set to current folder

if ($handle = opendir($dir)) {

 while(false!== ($file = readdir($handle))) {

 if ( is_file($dir.$file) ){

 if (preg_match("'\.(avi)$'", $file) ){

 $sub_file = str_ireplace(".avi", ".srt", $dir.$file);

 $idx_file = str_ireplace(".avi", ".idx", $dir.$file);

 $thumb_file = str_ireplace(".avi", ".jpg", $dir.$file);

 $out_file = str_ireplace(".avi", ".mp4", $dir.$file);

 flv_convert_get_thumb($dir.$file, $sub_file, $idx_file, $thumb_file, $out_file);

 }

 else{

 continue;

 }

 }

 }

 closedir($handle);

}

//flv_convert_get_thumb('input.avi', 'input.srt', 'output.jpg', 'output.ogm');

// code provided and updated by steve of phpsnaps ! thanks

// accepts:

// 1: the input video file

// 2: path to thumb jpg

// 3: path to transcoded mpeg?

function flv_convert_get_thumb($in, $in_sub, $in_idx, $out_thumb, $out_vid){

 // get thumbnail

 $cmd = 'ffmpeg -v 0 -y -i '.$in.' -vframes 1 -ss 250 -vcodec mjpeg -f rawvideo -s 286x160 -aspect 16:9 '.$out_thumb;

 $res = shell_exec($cmd);

 // $res is the output of the command

 // transcode video

$cmd = 'mencoder '.$in.' -o '.$out_vid.' -sub '.$in_sub.' -subfont-text-scale 3.0 -subpos 99 -af volume=10 -aspect 16:9 -of avi -noodml -ovc x264 -x264encop$

 $res = shell_exec($cmd);

}

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 PHP
php引用传值实例详解学习
Nov 06 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
php识别翻转iphone拍摄的颠倒图片
May 17 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 #PHP
PHP简单获取视频预览图的方法
Mar 12 #PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 #PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 #PHP
PHP实现从远程下载文件的方法
Mar 12 #PHP
PHP判断网络文件是否存在的方法
Mar 12 #PHP
php实现过滤UBB代码的类
Mar 12 #PHP
You might like
最令PHP初学者头痛的十四个问题
2006/07/12 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
php给数组赋值的实例方法
2019/09/26 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Django REST framework内置路由用法
2019/07/26 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
走群众路线剖析材料
2014/10/09 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android