ホームページ  >  記事  >  バックエンド開発  >  PHP+FFMPEG により、ビデオを H264 標準 Mp4 ファイルに自動トランスコードできます。

PHP+FFMPEG により、ビデオを H264 標準 Mp4 ファイルに自動トランスコードできます。

PHP中文网
PHP中文网オリジナル
2017-03-24 09:55:426285ブラウズ

PHP+FFMPEG はビデオの H264 標準 Mp4 ファイルへの自動トランスコーディングを実現します。

php.ini ファイルを設定します

file_uploads = on ;//是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;//文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 1024m ;//望文生意,即允许上传文件大小的最大值。默认为2M,我们设置为1G
post_max_size = 1024m ;//指通过表单POST给PHP的所能接收的最大值,我们也设置为1G

max_execution_time = 3600 ;//每个PHP页面运行的最大时间值(秒),默认30秒,设置为一小时,因为后面转码时间很久。
max_input_time = 36000 ;//每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;//每个PHP页面所吃掉的最大内存,默认8M

ファイルアップロードプラグイン

Flame Rain はアップロードプラグである Uploadify を使用することをお勧めします-in JQuery用に進捗表示を実装します。プラグインのインストールは簡単なので、ここではスキップできます。
ただし、注意が必要な問題があります。多くの情報を確認した結果、最終的な理由は次のとおりです。uploadify は Flash クライアントを使用するため、生成されるユーザーエージェントはブラウザーのユーザーとは異なります。 -エージェントが違います。


最終解決策:

//在upmodify上传参数中加入session参数,如下:
scriptData: {"SESSION_ID":""},
// 在服务端接收页面加入以下代码:
if(@$_REQUEST['SESSION_ID'] && ($session_id=$_REQUEST['SESSION_ID']) !=session_id()){
session_destroy();
session_id($session_id);
@session_start(); 
}

これにより、FLASH がページを正しく配信できないという問題が解決されます

ビデオ形式変換

現在、Linux で最も人気のあるビデオ形式変換ソフトウェアは FFMPEG であり、FFMPEG は録画、スクリーンショット、変換、および保存に使用されます。ストリーミング オーディオとビデオを最適化するための完全なソリューション、主要なオーディオ/ビデオ コーデック ライブラリのセット。 FFMPEG に加えて、H264 形式にトランスコードする必要があり、拡張子も必要です。 (すべてのソフトウェア パッケージのダウンロード アドレスは記事の最後に記載されています)

centos 5.4 環境に h264 拡張機能をインストールするためのソース コードをインストールします

tar -xjvf x264-snapshot-20120718-2245-stable.tar.bz2 
#进入解压后的源文件目录 
cd x264-snapshot-20120718-2245-stable/ 
./configure --prefix=/usr/local --enable-shared 
make
make install

//centos 5.4环境下安装源码安装ffmpeg with h264扩展
tar -xjvf ffmpeg-2.1.1.tar.bz2
//进入解压后目录 
cd ffmpeg-2.1.1
./configure --enable-gpl --enable-libx264
make
make install
//重新加载配置
lcfonfig 
//测试是否安装成功
ffmpeg

以下の内容が表示されれば、インストールは成功です:

ffmpeg version 2.1.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 17 2013 23:32:40 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
configuration: --enable-libx264 --enable-gpl
libavutil 52. 48.101 / 52. 48.101
libavcodec 55. 39.101 / 55. 39.101
libavformat 55. 19.104 / 55. 19.104
libavdevice 55. 5.100 / 55. 5.100
libavfilter 3. 90.100 / 3. 90.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'

php ffmpeg を呼び出してビデオをトランスコードします

$cmd = 'FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 uploadfile/mp4/test.mp4';
exec($cmd, $status);

実行前に実行してください。exec 機能が有効になっていることを確認してください。それ以外の場合は、php.ini ファイルを変更してください

最後に FFMPEG+H264 拡張子+YASM+apache_mod_h264 を添付します

関連記事:

PHP でビデオを MP4 に変換し、ビデオ プレビューを取得する方法

php は memcoder を使用して方法ビデオをmp4形式に変換します

phpでダウンロードしたflvファイルまたはmp4ファイルは再生できません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。