本文和大家分享PHP中的FFmeg安装及使用,希望能帮助到大家 FFmpeg简介 FFmpeg是视频处理最常用的开源软件。 它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的
本文和大家分享PHP中的FFmeg安装及使用,希望能帮助到大家
FFmpeg简介
FFmpeg是视频处理最常用的开源软件。 它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。 关于FFMPEG视音频编解码的知识可以参考大神雷霄骅的系列教程 blog.csdn.net/leixiaohua1…
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
主要安装三个:yasm ,sdl1.2 和 sdl2.0
sudo apt-get install yasm
安装sdl1.2
sudo apt-get install libsdl1.2-dev
安装 sdl2.0
sudo apt-get install libstl2-dev
进入到解压之后的 ffmpeg文件夹,依次执行以下命令:
./configuremakesudo make install
输入以下命令查看输出:
FFmpeg 常用的命令行参数如下。
-c:指定编码器-c copy:直接复制,不经过重新编码(这样比较快)-c:v:指定视频编码器-c:a:指定音频编码器-i:指定输入文件-an:去除音频流-vn: 去除视频流-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。-y:不经过确认,输出时直接覆盖同名文件。
查看视频文件的元信息,比如编码格式和比特率,可以只使用-i
参数。 $ ffmpeg -i input.mp4
ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流
转换编码格式(transcoding)指的是, 将视频文件从一种编码转成另一种编码。比如转成 H.264 编码,一般使用编码器libx264
,所以只需指定输出文件的视频编码器即可。
$ ffmpeg -i [input.file] -c:v libx264 output.mp4
下面是改变视频分辨率(transsizing)的例子,从 1080p 转为 480p 。
$ ffmpeg \-i input.mp4 \-vf scale=480:-1 \output.mp4
添加音轨(muxing)指的是,将外部音频加入视频,比如添加背景音乐或旁白。
$ ffmpeg \-i input.aac -i input.mp4 \output.mp4
截图
$ ffmpeg \-ss 01:23:45 \-i input \-vframes 1 -q:v 2 \output.jpg
上面例子中,-ss 01:23:45
表示截取的时间戳, -vframes 1
指定只截取一帧,-q:v 2
表示输出的图片质量,一般是1到5之间(1 为质量最高)。
下面命令可以将音频文件,转为带封面的视频文件
$ ffmpeg \-loop 1 \-i cover.jpg -i input.mp3 \-c:v libx264 -c:a aac -b:a 192k -shortest \output.mp4
视频压缩
public static function reSize($path, $outPath, $toSize){ $shell = "ffmpeg -i " . $path . " -strict -2 -y -fs " . $toSize . " ". $outPath . " 2>&1"; exec($shell, $output, $ret); return $ret;}
视频截图
public static function screenshot($path, $outPath){ $shell = "ffmpeg -i " . $path . " -ss 1 -y -frames:v 1 -q:v 1 " . $outPath . " 2>&1"; exec($shell, $output, $ret); return $res;}
composer安装php-ffmpeg $ composer require php-ffmpeg/php-ffmpeg
require 'vendor/autoload.php';$ffmpeg = FFMpeg\FFMpeg::create();$video = $ffmpeg->open('video.mpg');$video ->filters() ->resize(new FFMpeg\Coordinate\Dimension(320, 240)) ->synchronize();$video ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10)) ->save('frame.jpg');$video ->save(new FFMpeg\Format\Video\X264(), 'export-x264.mp4') ->save(new FFMpeg\Format\Video\WMV(), 'export-wmv.wmv') ->save(new FFMpeg\FORMat\Video\WEBM(), 'export-webm.webm');
★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。
见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
来源地址:https://blog.csdn.net/yinshipin007/article/details/130875298
--结束END--
本文标题: PHP中的FFmpeg安装及使用
本文链接: https://lsjlt.com/news/390397.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0