Linux简单安装ffmpeg 实现用PHP压缩音频

一、下载安装

1、官方下载地址:Download FFmpeg

2、下载完上传到服务器然 然后解压就算安装完成了

tar -xf ffmpeg-git-amd64-static.tar.xz

3、然后配置一下全局变量(当然也可以不用配置 使用的时候带上文件路径就行)

cd /usr/bin
ln -s /root/ffmpeg-git-20231006-amd64-static/ffmpeg ffmpeg

 

 二、在PHP中用exec()函数运行ffmpeg命令处理音频

1、php.ini中exec()函数禁用去掉 保存 重启php

2、需要给执行命令用户设置权限 找到/etc/sudoers 这个文件 添加一行

比如给www用户添加权限 大概意思就是 www用户用exec()函数执行命令 不需要验证密码

www ALL=(ALL)  NOPASSWD: ALL

 3、php中执行ffmpeg命令压缩音频

exec('sudo ffmpeg -i /www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde.mp3 -b:a 69k -y /www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde_2.mp3 2>&1',$log,$status);
var_dump($log,$status);

命令参数简单解释:

exec('sudo (使用有权限的用户去执行命令)

ffmpeg -i   (指定要转换的音频文件)

/www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde.mp3 (被转换的音频文件全路径)

-b:a 69k  (指定要被转换成的比特率 一半语音聊天的音频大概是 128k 所以69k差不多是压缩了一倍 这个我不懂 我测试的结果大概是这样)

-y (生成后的文件有相同名字覆盖掉)

/www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde_2.mp3  (生成后的文件存放全路径)

2>&1  (加上这个后 如果执行没成功 会有提示原因)',

$log(执行结果记录),

$status(执行返回状态 0 表示执行成功));

三、完成(一定按照步骤来是能转换成功的)

关于ffmpeg的参数说明 可以自行搜索查阅.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何实现前端音频和视频播放?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

编译[Bug]——too few arguments for template template parameter “Tuple“ detected

项目场景: 当使用高版本的cuda去安装低版本pytorch,并且编译用低版本pytorch写的cuda算子时,或者说是VS的版本过高如2022和2019,都有可能会出现某个.h文件或者.c文件报错,如: error: too few arguments f…

基于TCP的RPC服务

TCP服务器上的RPC,通过创建一个服务器进程监听传入的tcp连接,并允许用户 通过此TCP流执行RPC命令 -module(tr_server). -author("chen"). -behaviour(gen_server).%% API -export([start_link/1,start_link/0,get_count/0,stop/0 ]).-export(…

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(2)

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第一部分:通信协议(2)前言SOAP vs REST vs GraphQL vs RPC代码优先与 API 优先HTTP 状态代码API 网关有什么作用步骤说明 我们如何设计有效和安全的 API弘…

多线程抽象知识汇总

文章目录 本日鸡汤锁策略1. 乐观锁和悲观锁2. 轻量级锁和重量级锁3. 自旋锁和挂起等待锁4. 互斥锁和读写锁5. 公平锁和非公平锁6. 可重入锁和非重入锁.7. synchronized锁CAS原子类自旋锁ABA问题synchronized 锁优化1. 锁升级/锁膨胀2. 锁消除3. 锁粗化Java.util.Concurrle(JUC)…

2048天创作纪念日

2048天创作纪念日 初心收获日常成就憧憬 初心 大一的时候,老师上课说可以通过浏览他人博客或者自己写博客来学习编程。从那以后,写博客这件事情就埋在了我心里,但是我一直没有什么内容想写。直到入选了ACM校队后,需要经常做大量的…

JS数组方法合集(含应用场景)

1.Array.push() 向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变 const arr ["apple", "orange", "grape"]; const arr_length arr.push("banana");console.log("arr", arr, "arr_leng…

SpringCloud: sentinel链路限流

一、配置文件要增加 spring.cloud.sentinel.webContextUnify: false二、在要限流的业务方法上使用SentinelResource注解 package cn.edu.tju.service;import com.alibaba.csp.sentinel.annotation.SentinelResource; import com.alibaba.csp.sentinel.slots.block.BlockExcept…

全球剥离抗蚀液行业总体规模、主要厂商及IPO上市调研报告,2023-2029

报告摘要 根据本项目团队最新调研,预计2029年全球剥离抗蚀液产值达到 百万美元,2023-2029年期间年复合增长率CAGR为 %。 本文研究全球剥离抗蚀液总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,是一份详细…

vuex报错 Cannot destructure property ‘commit‘ of ‘undefined

在使用vuex中的模块是遇到了一个报错,这个报错的意思是解构一个未定义的对象时发生的。 经过排查发现是在另一个模块的actions中调用了当前模块actions中的方法,没有传任何值,所以无法结构出来commit方法 原代码 //user.js actions: { asy…

图像处理软件Photoshop 2023 mac新增功能 ps 2023中文版

​Photoshop 2023 mac是一款功能强大、易用且灵活的图像编辑软件,旨在满足专业设计师和摄影师的需求。无论您是处理照片、制作图形还是进行艺术创作,Photoshop 2023 都能为您提供丰富的工具和效果,帮助您实现创意想法。Photoshop还支持多种文…

nodejs+vue中学信息技术线上学习系统-计算机毕业设计

因此,将现代化的计算机技术、网络技术以及多媒体等技术相结合,开发基于互联网的自主学习平台,为学生提供良好的自主学习环境,方便学生能够网上学习,师生通过该平台可以进行课后交流。目 录 摘 要 I ABSTRACT II 目 录 …

vue2技能树(6)-事件处理和表单输入绑定

目录 Vue 2 事件处理详解监听事件项目示例 事件修饰符项目示例 内联事件处理项目示例 事件对象项目示例 事件修饰符项目示例 Vue 2 表单输入绑定详解双向数据绑定项目示例 单选框和复选框项目示例 下拉框项目示例 .lazy 修饰符项目示例 👍 点赞,你的认可…

Linux系统之passwd命令的基本使用

Linux系统之passwd命令的基本使用 一、passwd命令介绍1.1 passwd命令简介1.2 passwd命令起源 二、passwd命令的使用帮助2.1 passwd命令的help帮助信息2.2 passwd命令的语法解释 三、查看passwd相关文件3.1 查看用户相关文件3.2 查看组相关文件 四、passwd命令的基本使用4.1 设置…

零信任身份管理平台,构建下一代网络安全体系

随着数字化时代的到来,网络安全已成为企业和组织面临的一项重要挑战。传统的网络安全方法已经无法满足不断演变的威胁和技术环境。近期,中国信息通信研究院(简称“中国信通院”)发布了《零信任发展研究报告( 2023 年&a…

力扣每日一题48:旋转图像

题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],…

【前端】使用tesseract插件识别提取图片中的文字

前言 有时候项目需要识别证照信息,或者拍照搜索内容等。图片处理一般是后端处理比较好,不过前端也有相关插件处理,tesseract.js就是一种前端处理方案。 使用tesseract tesseract更多的语言模型:language配置 安装 Tesseract.…

Linux系统编程_进程间通信第2天: 共享内存(全双工)、信号(类似半双工)、信号量

1. 共享内存概述(433.10)(全双工) 2. 共享内存编程实现(434.11) 共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区 特点 共享内存是最快的一种 IPC&…

Bootstrap的导航栏设计相关知识

Bootstrap的导航栏设计相关知识 目录 01-基础知识02-最基本的导航栏设计例子03-带下拉菜单的导航04-在导航栏中添加表单元素05-固定导航栏的位置(如固定到顶部和底部)06-设计导航栏的颜色和文本颜色 01-基础知识 导航栏是网页设计中不可缺少的部分,它是整个网站的…

Elasticsearch 8.9启动时构建接收Rest请求的hander过程源码

一、main方式入口二、Elasticsearch初始化第三阶段1、构造node节点对象时构造restController2、在node构建对象最后执行初始化RestHanders的操作 三、以注册在hander中的RestGetIndicesAction对象为例介绍1、继承了BaseRestHandler,routes方法做路由规则&#xff0c…