PHP使用ffmpeg给视频增加字幕显示的方法,实例分析了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); 
} 
?>