Www. fire-rain.comblogFFMPEG_H264_MP4PHP + FFMPEG automatic transcoding H264 standard Mp4 File recently made an online teaching network project, need to upload any format of video automatic h264 standard video, using html5 playback. Finally, PHP + FFMPEG is used for implementation. Here we will share our detailed solutions with you! Configure ph
Http://www.fire-rain.com/blog/FFMPEG_H264_MP4 PHP + FFMPEG automatic transcoding H264 standard Mp4 File recently made an online teaching network project, need to upload any format of video automatic h264 standard video, using html5 playback. Finally, PHP + FFMPEG is used for implementation. Here we will share our detailed solutions with you! Configure ph
Link: http://www.fire-rain.com/blog/FFMPEG_H264_MP4
PHP + FFMPEG automatic Transcoding of H264 standard Mp4 files
Recently, I am working on an online tutorial Network project. I need to upload videos in any format to automatically play h264 standard videos using html5. Finally, PHP + FFMPEG is used for implementation. Here we will share our detailed solutions with you!
Configuration
php.ini
File
File_uploads = on; // whether to allow file upload over HTTP. The default value is ON, which is the place where the upload_tmp_dir; // file is uploaded to the server for storing temporary files. If this value is not specified, the system will use the default Temporary Folder upload_max_filesize = 1024 m; // wangwen business, that is, the maximum file size that can be uploaded. The default value is 2 M. We set it to 1Gpost_max_size = 1024 m; // it refers to the maximum value that can be received by PHP through form POST. We also set it to 1Gmax_execution_time = 3600; // The maximum time (in seconds) for running each PHP page. The default value is 30 seconds. It is set to one hour because the transcoding time is long. Max_input_time = 36000; // maximum time required for receiving data on each PHP page. The default value is 60 seconds. memory_limit = 8 m. // The maximum memory size consumed by each PHP page. The default value is 8 M.
File Upload plugin
Flame rain is recommendeduploadify
,Uploadify
YesJQuery
To display the progress. The plug-in is easy to install, Which is skipped here.
However, you need to note that non-ie browserssession
Will be lost. I checked a lot of information. The final reason is:
Becauseuploadify
The flash client is used. The useragent generated by the flash client is different from the user-agent of the browser.
Final Solution:
// Add the session parameter to the upmodify upload parameter, as shown in the following code: scriptData: {"SESSION_ID": ""}, // Add the following code to the server receiving page: if (@ $ _ REQUEST ['session _ id'] & ($ session_id = $ _ REQUEST ['session _ id'])! = Session_id () {session_destroy (); session_id ($ session_id); @ session_start ();}
This solves the problem that FLASH cannot pass pages correctly.
Video Format Conversion
Currently, FFMPEG is a popular video format conversion software in Linux. FFMPEG is a complete solution for recording, conversion, and streaming audio and video. It is a set of leading Audio/Video Codec class libraries. In addition to FFMPEG, an extension is required to transcode to H264 format. (All software packages are provided at the end of the article)
Install the h264 extension with the source code in centos 5.4
Tar-xjvf x264-snapshot-20120718-2245-stable.tar.bz2 # enter the decompressed source file directory cd x264-snapshot-20120718-2245-stable /. /configure -- prefix =/usr/local -- enable-shared make install // install source code in centos 5.4 environment install ffmpeg with h264 extension tar-xjvf ffmpeg-2.1.1.tar.bz2 // enter the directory cd after decompression ffmpeg-2.1.1. /configure -- enable-gpl -- enable-libx264 make install // reload the configuration lcfonfig // test whether the installation is successful ffmpeg
If you see the following content, the installation is successful:
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 calls ffmpeg to transcode the video
$cmd = 'FFMPEG -i uploadfile/video/test.wmv -c:v libx264 -strict -2 uploadfile/mp4/test.mp4'; exec($cmd, $status);
Before running the command, make sure that the exec function is enabled. Otherwise, modify the php. ini file.
The FFMPEG + H264 extension + YASM + apache_mod_h264 is attached.
Original article address: PHP + FFMPEG automatic Transcoding of H264 standard Mp4 files, thanks to the original author for sharing.