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

操作步骤:

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

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

转码
D:\ffmpeg\bin>ffmpeg -i D:\ffmpeg\test\Jay_xinyu.mp3 -b:v 640k D:\ffmpeg\test\output.ts 提取前20s
D:\ffmpeg\bin>ffmpeg -ss :: -t :: -i D:\ffmpeg\test\Jay_xinyu.mp3 D:\ffmpeg\test\Jay_xinyu_demo.mp3 将视频每隔60秒分割一次
D:\ffmpeg\bin>ffmpeg -ss :: -t :: -i D:\ffmpeg\test\Jay_xinyu.mp3 D:\ffmpeg\test\Jay_xinyu_1.mp3
D:\ffmpeg\bin>ffmpeg -ss :: -t :: -i D:\ffmpeg\test\Jay_xinyu.mp3 D:\ffmpeg\test\Jay_xinyu_2.mp3
D:\ffmpeg\bin>ffmpeg -ss :: -t :: -i D:\ffmpeg\test\Jay_xinyu.mp3 D:\ffmpeg\test\Jay_xinyu_3.mp3 压缩mp3 文件 如果你觉得mp3 文件 有点大,想变小一点那么可以通过-ab 选项改变音频的比特率 (bitrate)
6496kb => 4217kb
D:\ffmpeg\bin>ffmpeg -i D:\ffmpeg\test\Jay_xinyu.mp3 -ab D:\ffmpeg\test\Jay_xinyu_yasuo.mp3 //这里将比特率设为128 播放
D:\ffmpeg\bin>ffplay D:\ffmpeg\test\Jay_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...\n";
$ffmpeg = FFMpeg\FFMpeg::create(array(
'ffmpeg.binaries' => 'D:\ffmpeg\bin\ffmpeg.exe',
'ffprobe.binaries' => 'D:\ffmpeg\bin\ffprobe.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 FFMpeg\Format\Audio\Mp3();
$audio->filters()->clip(FFMpeg\Coordinate\TimeCode::fromSeconds(0), FFMpeg\Coordinate\TimeCode::fromSeconds(20)); //截取前20秒的音频内容
$audio->save($audio_format, "new_demo_20s.mp3");
echo "end...\n";

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

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

【备忘】windows环境下20行php代码搞定音频裁剪的更多相关文章

  1. 5行js代码搞定导航吸顶效果

    一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ...

  2. 200行Java代码搞定计算器程序

    发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...

  3. 180行ruby代码搞定游戏2048

    最今在玩2048这款小游戏,游戏逻辑简单,很适合我这样的对于游戏新入行的人来实现逻辑.于是选择了最拿手的ruby语言来实现这款小游戏的主要逻辑.还是挺简单的,加起来4小时左右搞定. 上代码: requ ...

  4. 几行JavaScript代码搞定Iframe 自动适应

    场景:Iframe嵌入flash,希望flash能随着页面的resize而resize. 主要代码: 代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...

  5. 80行Python代码搞定全国区划代码

    微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos ...

  6. windows和linux环境下java调用C++代码-JNI技术

    最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结 ...

  7. 【经验之谈】Git使用之Windows环境下配置

    前言 安装 配置 关于git使用的几个问题 后记 关于代码托管,以前用过vss和svn,看博客或论坛的时候,经常有人提到github,有很多著名的开源软件都托管在github,想来肯定不错(莫笑),当 ...

  8. windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤

    nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...

  9. XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解

    XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...

随机推荐

  1. IOS UI-自定义UIColectionView布局

    ViewController.m // // ViewController.m // IOS_0226_自定义UIColectionView布局 // // Created by ma c on 16 ...

  2. Python 序列化pickle/cPickle模块整理

    Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...

  3. C# 设计模式巩固笔记 - 建造者模式

    前言 写给自己-贵在坚持.建造者模式不复杂,但是想个形象的例子好难. 介绍-建造者模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 实现 建造者模式主要是应对复杂 ...

  4. eureka -1 - 介绍

    eureka ,服务发现注册中心 eureka 包含server, client两部分. eureka server,服务发现组件,各个微服务启动的时候会向server注册自己的信息(ip,hostn ...

  5. LeetCode OJ:Jump Game II(跳跃游戏2)

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  6. js 倒计时 时间戳

    功能:传入一个截止时间(unix时间戳),显示倒计时 因为unix时间戳,并不等于js 的new Date().getTime()得到的那一串毫秒数,所以要在JS中使用unix时间戳,必须先转换一下u ...

  7. 【前端工具】 在 Windows 下安装 GruntJS——教程(译)

    在你安装 Grunt.js 之前你需要先安装 Node.js.对于本教程而言,我已经安装好了 node.js v0.10.0. 我将要安装 Grunt.js v0.4.1.警告:如果你已经安装了 Gr ...

  8. iOS笔记之常用工具

    CocoaPods: 类库管理工具,使用教程见http://www.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-depende ...

  9. 报错:java.lang.IllegalArgumentException: object is not an instance of declaring class

    反射的报错信息如下: java.lang.IllegalArgumentException: object is not an instance of declaring class at sun.r ...

  10. LVS模式一:直接路由模式DR(Direct Routing)

    (一)LVS 一.LVS的了解 LVS(Linux Virtual Server)可以理解为一个虚拟服务器系统. Internet的飞速发展,网络带宽的增长,Web服务中越来越多地使用CGI.动态主页 ...