转码到MP4
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doing
pre
LICENSE
README.md
cron.sh
head.sh
index.php
vcode.php

README.md

Ttomp4

转码到MP4

配置

apt-get install ffmpeg

创建目录

  • pre
  • doing

确保两个目录权限777 [让PHP写入转码配置] [确保两个文件夹下没有其他.sh脚本文件]

使用范例

index.php

<?php
	include "vcode.php";
	$vcode=new vcode();
	$vcode->vcode("/home/a.mp4","/home/c",2);
 /*
  参数1: /home/a.mp4为文件的路径,请用绝对路径
  参数2:/home/c 转码储存的目录 [请不要在后面添加 "/"]
  参数3: 1为转码【同画质】 2额外转换出一个848X480的分辨率视频 文件保存源文件的md5作为文件名.mp4 //小文件则是 small_文件保存源文件的md5作为文件名.mp4
*/


配置cron

crontab -e
*/1 * * * * sh /home/vcode/cron.sh 

目前文件目录应该如此:

  • ./
    • doing/     权限: 777
    • pre/       权限: 777
    • cron.sh
    • vcode.php
    • head.sh
    • index.php [运行脚本地址,可为其他文件名,但必须同目录]

自动生成的转码配置文件

若想在其他目录下调用,请把doing 和 pre 和cron.sh head.sh与你的调用的文件放在同一目录下

PHP生成的Shell脚本如下范例:

#!/bin/bash
m=`uptime | awk '{print int($8)}'`
if [ "$m" -gt 2 ];then
	exit
fi

cd ./pre
mv 5b9a4c7ce81c35e3ba855e11d08c3ee2.mp4.sh ../doing
ffmpeg -y -i /home/wwwroot/default/m/v.mp4 -c:v libx264 -strict -2 /home/wwwroot/default/m/video/5b9a4c7ce81c35e3ba855e11d08c3ee2.mp4
ffmpeg -y -i /home/wwwroot/default/m/v.mp4 -c:v libx264 -strict -2 -s 848*480 /home/wwwroot/default/m/video/small_5b9a4c7ce81c35e3ba855e11d08c3ee2.mp4
rm ../doing/5b9a4c7ce81c35e3ba855e11d08c3ee2.mp4.sh
#R#E#M#/home/wwwroot/default/m/v.mp4#R#E#M#/home/wwwroot/default/m/video/5b9a4c7ce81c35e3ba855e11d08c3ee2.mp4

杂项

调用ffmpeg转码时候,load即时负载大于2时自动舍【基本只能弃同时转码一个任务!】

  • vcode.php
  • head.sh
  • cron.sh