【备忘】windows环境下20行php代码搞定音频裁剪
先上图,由于最近的需求需要对语音文件进行处理,所以抽空研究了下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代码搞定音频裁剪的更多相关文章
- 5行js代码搞定导航吸顶效果
一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ...
- 200行Java代码搞定计算器程序
发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...
- 180行ruby代码搞定游戏2048
最今在玩2048这款小游戏,游戏逻辑简单,很适合我这样的对于游戏新入行的人来实现逻辑.于是选择了最拿手的ruby语言来实现这款小游戏的主要逻辑.还是挺简单的,加起来4小时左右搞定. 上代码: requ ...
- 几行JavaScript代码搞定Iframe 自动适应
场景:Iframe嵌入flash,希望flash能随着页面的resize而resize. 主要代码: 代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...
- 80行Python代码搞定全国区划代码
微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos ...
- windows和linux环境下java调用C++代码-JNI技术
最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结 ...
- 【经验之谈】Git使用之Windows环境下配置
前言 安装 配置 关于git使用的几个问题 后记 关于代码托管,以前用过vss和svn,看博客或论坛的时候,经常有人提到github,有很多著名的开源软件都托管在github,想来肯定不错(莫笑),当 ...
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...
- XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解
XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...
随机推荐
- day29 主机管理-堡垒机2-原生ssh会话记录
day29课堂代码:https://github.com/liyongsan/git_class/tree/master/day29 课堂笔记: 通过原生Ssh 记录会话1. 在我们自己的堡垒机交互脚 ...
- Nginx启动/重启失败
解决方案: Nginx启动或重启失败,一般是因为配置文件出错了,我们可以使用nginx -t方法查看配置文件出错的地方.也可以通过查看Nginx日志文件定位到Nginx重启失败的原因,Nginx日志文 ...
- ansible 调用playbook api执行(一)
一 调用ansible playbook api执行playbook 1 准备好hosts文件 root@ansible:~/ansible/playbooks# cat hosts [all:var ...
- DB2 设置最大连接数
db2 connect to dbname user username using passwd db2 update db cfg using MAXAPPLS number 查看最大连接数 查看D ...
- 六.dbms_session(提供了使用PL/SQL实现ALTER SESSION命令)
1.概述 作用:提供了使用PL/SQL实现ALTER SESSION命令,SET ROLE命令和其他会话信息的方法 .2.包的组成 1).set_identifier说明:用于设置会话的客户ID号.语 ...
- CUDA库函数使用笔记与案例(一)
项目合作中需要整合对方公司提供的CUDA代码,因此需要详细学习代码中涉及的cuda函数. CUDA Tool Kit 8.0较完整的官方说明文档: http://docs.nvidia.com/cud ...
- 剑指offer--43.连续子数组的最大和
最大子段和,最大能取所有 ---------------------------------------------------------------- 时间限制:1秒 空间限制:32768K 热度 ...
- Python中函数练习
练习1:编写一个函数,接收一个字符串参数,返回一个元组(第一个元素为大写字母的个数,第二个元素为小写字母的个数) 解析: 练习二:编写函数,计算字符串匹配的准确率(orginStr为原始内容,use ...
- python3之环境搭建以及基础语法
早些时候,有一段时间吧,为了想免费下载网易云的收费音乐,也是翻了下python的教程的,语法方面没细致地去看,跟java.php.javascript这些都大同小异,也是面向对象的.那么,近期准备快速 ...
- Gradle2.0用户指南翻译——第三章. 教程
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...