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);

  }

  ?>

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