python加上ffmpeg实现音频分割
前言:
这是一个系列的文章,主要是使用python加上ffmpeg来对音视频文件进行处理,包括音频播放、音频格式转换、音频文件分割、视频播放等。
系列文章链接:
链接1: python使用ffmpeg来制作音频格式转换工具(优化版)
链接2:<Python>PyQt5+ffmpeg,简单视频播放器的编写(解码器:K-lite)
链接3:<Python>PyQt5自己编写一个音乐播放器(优化版)
有兴趣的可以看看。
本例是对音频文件进行分割,主要也是使用ffmpeg的功能来实现。
我们都知道ffmpeg的功能强大,可以使用指令方便的对音频进行处理。
平台:visual studio code
语言:python
工具:ffmpeg
模块:subprocess、PyQt5
环境:windows
分割指令:
ffmpeg -i in.mp3 -vn -acodec copy -ss [起始时间] -t [持续时间] out.mp3
以上是ffmpeg用来分割音频的主要指令。
UI一览:

界面是用PyQt5来制作,界面配色使用qss文件渲染。
关于qss文件的使用,本文就不细说了,我在其他文章里有过说明,有兴趣的可以点击文章开头的链接去看看。
主要程序说明
下面主要针对音频分割的主要程序进行说明,最后会贴出完整代码,以及源文件的链接也会贴上。
音频分割指令
cmdtxt=['ffmpeg','-i',src_audio_name,'-vn','-acodec','copy','-ss',start_time,'-t',dura_time,des_audio_name]
我们在文章前面已经列出了ffmpeg对音频分割所需要的指令,在本例中,cmdtxt是一个list数据,我们对其中的源文件、起始时间、持续时间、输出文件作自定义可选。
pp=subprocess.Popen(cmdtxt,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,encoding='utf-8',text=True)
在确定了ffmpeg的各项参数之后,我们使用subprocess模块来调用ffmpeg程序。

当前,前提是我们将下载好的ffmpeg的程序放在项目目录下。
我们在载入音频的时候,还会使用ffmpeg的probe功能来提取音频信息:
probe=ffmpeg.probe(filename)
{‘streams’: [{‘index’: 0, ‘codec_name’: ‘mp3’, ‘codec_long_name’: ‘MP3 (MPEG audio layer 3)’, ‘codec_type’: ‘audio’, ‘codec_tag_string’: ‘[0][0][0][0]’, ‘codec_tag’: ‘0x0000’, ‘sample_fmt’: ‘fltp’, ‘sample_rate’: ‘44100’, ‘channels’: 2, ‘channel_layout’: ‘stereo’, ‘bits_per_sample’: 0, ‘initial_padding’: 0, ‘r_frame_rate’: ‘0/0’, ‘avg_frame_rate’: ‘0/0’, ‘time_base’: ‘1/14112000’, ‘start_pts’: 353600, ‘start_time’: ‘0.025057’, ‘duration_ts’: 3982786560, ‘duration’: ‘282.226939’, ‘bit_rate’: ‘112000’, ‘disposition’: {‘default’: 0, ‘dub’: 0, ‘original’: 0, ‘comment’: 0, ‘lyrics’: 0, ‘karaoke’: 0, ‘forced’: 0, ‘hearing_impaired’: 0, ‘visual_impaired’: 0, ‘clean_effects’: 0, ‘attached_pic’: 0, ‘timed_thumbnails’: 0, ‘captions’: 0, ‘descriptions’: 0, ‘metadata’: 0, ‘dependent’: 0, ‘still_image’: 0}, ‘tags’: {‘encoder’: ‘LAME3.98r’}, ‘side_data_list’: [{‘side_data_type’: ‘Replay Gain’}]}], ‘format’: {‘filename’: ‘F:/音乐/[]草原在哪里.mp3’, ‘nb_streams’: 1, ‘nb_programs’: 0, ‘format_name’: ‘mp3’, ‘format_long_name’: ‘MP2/3 (MPEG audio layer 2/3)’, ‘start_time’: ‘0.025057’, ‘duration’: ‘282.226939’, ‘size’: ‘3951542’, ‘bit_rate’: ‘112010’, ‘probe_score’: 51}}
下面是转换过程终端界面的提示文本:
ffmpeg version 4.2.3 Copyright (c) 2000-2020 the FFmpeg developersbuilt with gcc 9.3.1 (GCC) 20200523configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcode相关文章:
python加上ffmpeg实现音频分割
前言: 这是一个系列的文章,主要是使用python加上ffmpeg来对音视频文件进行处理,包括音频播放、音频格式转换、音频文件分割、视频播放等。 系列文章链接: 链接1: python使用ffmpeg来制作音频格式转换工具(优化版) 链接2:<Python>PyQt5+ffmpeg,简单视频播放器的编写(…...
LLM之Prompt(一):5个Prompt高效方法在文心一言3.5的测试对比
在Effective Prompt: 编写高质量Prompt的14个有效方法文中我们了解了14个编写Prompt的方法(非常感谢原作者),那么这些Prompt在具体大模型中的效果如何呢?本文以百度文心一言3.5版本大模型在其中5个方法上做个测试对比。 第1条&am…...
TreeBERT:基于树的编程语言预训练模型。
TreeBERT https://arxiv.org/abs/2105.12485 Comments: Accepted by UAI2021 Subjects: Machine Learning (cs.LG); Programming Languages (cs.PL) Cite as: arXiv:2105.12485 [cs.LG] 1 Introduction 现有挑战: 设计适当的机制来学习程序的语法结构 代码是强结…...
生成小程序的二维码的base64码(中间logo可以自定义)
1.生成基础二维码 /*** 生成微信小程序二维码,带参数,最终转成base64* param page 当前小程序相对页面 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不…...
【音视频 | Ogg】Ogg封装格式详解——包含Ogg封装过程、数据包(packet)、页(page)、段(segment)等
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...
ubuntu 22.04 安装ros2 iron
目录 一、镜像 二、ifconfig 三、ssh连接不上 四、安装iron 一、镜像 123云盘直接下载 二、ifconfig sudo apt install net-tools 三、ssh连接不上 sudo apt install openssh-server 四、安装iron Ubuntu (Debian packages) — ROS 2 Documentation: Iron document…...
PHP语言、B/S手术麻醉临床信息管理系统源码
手术麻醉临床信息管理系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流程,实现麻醉手术过程的信息数字化,自动生…...
Win11安装网络打印机
https://support.microsoft.com/zh-cn/windows/%E5%9C%A8-windows-%E4%B8%AD%E5%AE%89%E8%A3%85%E6%89%93%E5%8D%B0%E6%9C%BA-cc0724cf-793e-3542-d1ff-727e4978638b...
逆向学习记录(3)工具介绍jadx、gda和jeb
1、jadx 下载地址如下,目前最新版本为v1.4.7,改成想要下载的版本号就能下载对应的版本。 https://github.com/skylot/jadx/releases/tag/v1.4.7 下载后解压,进入对应路径的bin文件夹内,运行jadx-gui.bat。 2、gda 下载地址和gi…...
C#,数值计算——偏微分方程,Mglin的计算方法与源程序
1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Mglin { private int n { get; set; } private int ng { get; set; } private double[,] uj1 { get; set; } private Lis…...
一机服务万人,拓世法宝AI智能商业数字人一体机,解锁文旅新表达
在人工智能的强劲推动下,人们走进了一个令人振奋的数字化时代。如何让文化传承与现代科技完美融合,成为一个十分有趣的议题,当AI技术结合文旅生活,便悄然开启了一种全新的旅游服务模式——AI数字文旅。 在我国国家博物馆、文旅大…...
【源码解析】聊聊SpringBean是如何初始化和创建
我们知道通过类进行修复不同的属性,比如单例、原型等,而具体的流程是怎么样的呢,这一篇我们开始从源码的视角分析以下。 刷新方法 在刷新容器中有一个方法,其实就是 Bean创建的过程。 finishBeanFactoryInitialization(beanFact…...
【0基础学Java第六课】-- 数组的定义与使用
6 数组的定义与使用 6.1 什么是数组6.2 数组的创建及初始化6.2.1 数组的创建:6.2.2 数组的初始化 6.3 数组的使用6.3.1 数组中元素的访问6.3.2 Java中JVM当中的内存划分6.3.3 遍历数组 6.4 数组是引用类型6.4.1 初始JVM的内存分布6.4.2 基本类型变量与引用类型变量的…...
后台项目Gradle打包jar,不包含依赖jar并放到外部路径
# 1.Gradle打包jar # 2.依赖jar包外放到其他目录 # 3.保留引用关系 # 4.去掉引入的缓存build.gradle// 需要放到dependencies下面 // 傻逼问题 1 这个jar打包还得主动开 jar.enabled true // 1.清除上一次的lib目录 task clearJar(type: Delete) {delete "$buildDir\\lib…...
NSSCTF web刷题记录4
文章目录 [NSSRound#4 SWPU]1zweb(revenge)[强网杯 2019]高明的黑客[BJDCTF 2020]Cookie is so subtle![MoeCTF 2021]fake game[第五空间 2021]PNG图片转换器[ASIS 2019]Unicorn shop[justCTF 2020]gofs[UUCTF 2022 新生赛]phonecode[b01lers 2020]Life On Mars[HZNUCTF 2023 f…...
什么是大模型?一文读懂大模型的基本概念
大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发,对大模型领域容易混淆的相关概念进行区分,并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读,供大家在了解大模型基本知识的过程中起到一定参…...
数据结构之队的实现
𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…...
【实战Flask API项目指南】之三 路由和视图函数
实战Flask API项目指南之 路由和视图函数 本系列文章将带你深入探索实战Flask API项目指南,通过跟随小菜的学习之旅,你将逐步掌握 Flask 在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧! 前言 当小菜踏入Flask后端开发的世界时&…...
mediasoup udp端口分配策略
mediasoup-worker多进程启动时,rtcMinPort/rtcMaxPort可以使用相同的配置。 for (let i 0; i < numWorkers; i) { let worker await mediasoup.createWorker({ logLevel: config.mediasoup.worker.logLevel, logTags: config.mediasoup.work…...
山西电力市场日前价格预测【2023-11-07】
日前价格预测 预测说明: 如上图所示,预测明日(2023-11-07)山西电力市场全天平均日前电价为318.54元/MWh。其中,最高日前电价为514.01元/MWh,预计出现在18: 00。最低日前电价为192.95元/MWh,预计…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
