【备忘】windows环境下20行php代码搞定音频裁剪

先上图,由于最近的需求需要对语音文件进行处理,所以抽空研究了下php处理音/视频文件的处理,简单的demo处理,截取一个音频文件的前20秒,并保存新的媒体文件。

操作步骤:

①在此站点下载所需的辅助程序 https://ffmpeg.zeranoe.com/builds/ ,选择如图默认推荐版本点击下载(如果嫌网速比较慢的话,可以利用工具网盘离线下载工功能,然后从网盘上下载下来)

② 下载后放在d盘根目录,D:ffmpeg 可执行文件在 D:ffmpegin目录下,这里可以直接在命令行中直接操作了(整理了一些执行过的代码如下)

转码
D:ffmpegin>ffmpeg -i D:ffmpeg	estJay_xinyu.mp3 -b:v 640k D:ffmpeg	estoutput.ts

提取前20s
D:ffmpegin>ffmpeg -ss 00:00:00 -t 00:00:20 -i D:ffmpeg	estJay_xinyu.mp3  D:ffmpeg	estJay_xinyu_demo.mp3

将视频每隔60秒分割一次
D:ffmpegin>ffmpeg -ss 00:00:00 -t 00:00:59 -i D:ffmpeg	estJay_xinyu.mp3  D:ffmpeg	estJay_xinyu_1.mp3
D:ffmpegin>ffmpeg -ss 00:00:59 -t 00:01:58 -i D:ffmpeg	estJay_xinyu.mp3  D:ffmpeg	estJay_xinyu_2.mp3
D:ffmpegin>ffmpeg -ss 00:01:58 -t 00:02:57 -i D:ffmpeg	estJay_xinyu.mp3  D:ffmpeg	estJay_xinyu_3.mp3

压缩mp3 文件

如果你觉得mp3 文件 有点大,想变小一点那么可以通过-ab 选项改变音频的比特率 (bitrate)
6496kb => 4217kb
D:ffmpegin>ffmpeg -i D:ffmpeg	estJay_xinyu.mp3 -ab 128 D:ffmpeg	estJay_xinyu_yasuo.mp3    //这里将比特率设为128

播放
D:ffmpegin>ffplay D:ffmpeg	estJay_xinyu.mp3

③ 如果想在web(php)代码中运行的话,拉取PHP-FFMpeg组件,方法: composer require php-ffmpeg/php-ffmpeg , 写业务代码test.php引入vendor包内容(demo代码如下)

<?php
/**
 * User: szliugx@gmail.com
 * Date: 2017/8/11
 * Time: 11:27
 */
include_once "./vendor/autoload.php";

echo "start...
";
$ffmpeg = FFMpegFFMpeg::create(array(
    'ffmpeg.binaries'  => 'D:ffmpeginffmpeg.exe',
    'ffprobe.binaries' => 'D:ffmpeginffprobe.exe',
    'timeout'          => 3600, // The timeout for the underlying process
    'ffmpeg.threads'   => 12,   // The number of threads that FFMpeg should use
), null);
$audio        = $ffmpeg->open('Jay_xinyu.mp3');
$audio_format = new FFMpegFormatAudioMp3();
$audio->filters()->clip(FFMpegCoordinateTimeCode::fromSeconds(0), FFMpegCoordinateTimeCode::fromSeconds(20)); //截取前20秒的音频内容
$audio->save($audio_format, "new_demo_20s.mp3");
echo "end...
";

需要注意的是配置文件中'ffmpeg.binaries' 和 'ffprobe.binaries' 需要指向下载下来的可执行文件的地址 

由于是在windows环境下做预研,linux环境时再看下是否有不一样的配置,有空的话也会记录下来

原文地址:https://www.cnblogs.com/liugx/p/7346080.html