phpHow to use PHP's ffmpeg extension?
With the development of the Internet and the continuous improvement of video technology, video plays an increasingly important role in our lives. However, the current demands for video processing and editing are also increasing, which requires us to use some professional tools to help us complete the work. Among them, ffmpeg is a very popular video processing tool. It supports a variety of video codec formats and can edit, cut, transcode and other operations on videos. The ffmpeg extension of PHP provides us with a convenient way to use ffmpeg for video processing and editing.
This article will introduce how to use PHP's ffmpeg extension to help everyone better master this tool.
1. Install ffmpeg extension
Before using PHP’s ffmpeg extension, we first need to install it.
1. Download ffmpeg source code
We can download the latest ffmpeg source code at https://www.ffmpeg.org/download.html.
2. Install ffmpeg
Before installation, we need to install some necessary dependent libraries and tools:
sudo apt-get update
sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
After installing the dependencies, we can install ffmpeg:
cd ~/Downloads
tar xvf ffmpeg-4.2.1.tar.gz
cd ffmpeg-4.2.1
. /configure --enable-shared --disable-static
make
sudo make install
3. Install ffmpeg extension
After installing ffmpeg, we can install the ffmpeg extension . We can use pecl to install the ffmpeg extension:
sudo pecl install ffmpeg
After the command is executed, we need to add the ffmpeg extension to the PHP configuration file:
echo "extension=ffmpeg.so" | sudo tee /etc/php/7.2/mods-available/ffmpeg.ini
sudo ln -s /etc/php/7.2/mods-available/ffmpeg.ini /etc/php /7.2/cli/conf.d/20-ffmpeg.ini
sudo ln -s /etc/php/7.2/mods-available/ffmpeg.ini /etc/php/7.2/apache2/conf.d/20- ffmpeg.ini
After the installation is complete, we can use the phpinfo() function to check whether the ffmpeg extension has been successfully installed.
2. Using the ffmpeg extension
Once we have installed the ffmpeg extension, we can start using it. The following are some commonly used operations:
1. Obtain basic information of the video
We can use the following code to obtain the basic information of the video:
// Video file path
$video_path = 'test.mp4';
// Open video
$video = new FFmpegMovie($video_path);
// Get basic information
$info = $video->getInfo();
//Output information
var_dump($info);
?>
2. Extract the video screen
We can use the following code to extract the video screen:
// Video file path
$video_path = 'test.mp4';
//Open the video
$video = new FFmpegMovie($video_path);
//Extract the picture into jpg format
$thumbnail = $video ->getFrame(10);
$thumbnail->toJpeg('thumbnail.jpg');
?>
3. Video transcoding
We can use the following code to transcode the video:
// Video file path
$video_path = 'test.mp4';
// Transcoded video path
$new_video_path = 'new_test.mp4';
// Open video
$video = new FFmpegMovie($video_path);
/ / Transcoding
$transcoder = $video->createTranscoderForFormat('mp4');
$transcoder->setVideoCodec('h264');
$transcoder->setAudioCodec('aac') ;
$transcoder->setAudioChannels(2);
$transcoder->setAudioSampleRate(44100);
$transcoder->setVideoFrameRate(25);
$transcoder->setVideoDimension( 640, 480);
$transcoder->save($new_video_path);
?>
4. Video cutting
We can use the following code To cut the video:
// Video file path
$video_path = 'test.mp4';
// After cutting Video path
$new_video_path = 'new_test.mp4';
// Open video
$video = new FFmpegMovie($video_path);
// Cut
$cutter = $video->createCutter();
$cutter->setStart(10);
$cutter->setDuration(20);
$cutter->setCodec('copy ');
$cutter->save($new_video_path);
?>
5. Video merging
We can use the following code to merge videos :
// Video file path
$video_path1 = 'test1.mp4';
$video_path2 = 'test2.mp4';
// Merged video path
$new_video_path = 'new_test.mp4';
// Open video
$video1 = new FFmpegMovie($video_path1);
$video2 = new FFmpegMovie($video_path2);
// Merge
$merger = new FFmpegVideoMerger();
$merger->addVideo($video1);
$merger->addVideo ($video2);
$merger->save($new_video_path);
?>
Summary
By studying the above content, we can get a preliminary understanding of how to use PHP's ffmpeg extension for video processing and editing. ffmpeg is a powerful video processing tool, and the ffmpeg extension of PHP allows us to conveniently use the ffmpeg tool in PHP. In actual development, we can use ffmpeg extensions to implement various video processing and editing functions according to our own needs to meet user needs.
The above is the detailed content of How to use PHP's ffmpeg extension?. For more information, please follow other related articles on the PHP Chinese website!