本文实例讲述了PHP使用ffmpeg给视频增加字幕显示的方法。分享给大家供大家参考。具体实现方法如下:
复制代码 代码如下:<?php$dir = "./"; // set to current folderif ($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程序设计有所帮助。