python加上ffmpeg实现音频分割

news2025/6/17 15:10:43

前言:
这是一个系列的文章,主要是使用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 developers

  built with gcc 9.3.1 (GCC) 20200523

  configuration: --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

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

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

相关文章

Springboot配置knife4j类(knife4j的使用)

1.引言 1.1 Swagger介绍 前后端分离开发模式中,API文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。具有以下几个特点: 及时性 (接口变更后,能够及时准确地通知相…

揭秘!AI加持双十一电商盛宴,带你解锁更多营销新玩法

从2009年到2023年,每年年终的双11大促都是如期而至,而且几乎每一次双11都能给电商行业带来创新和改变。今年是中国电商行业的第15个双11,也是人工智能(AI)在电商领域大规模应用的第一个双11。在这15年的发展历程中&…

RoboFab:世界第一家人形机器人生产工厂,承诺每年将生产1万台高科技机器人

原创 | 文 BFT机器人 脑洞大开地想象一下:有一家能够制造像人类一样行走、奔跑和工作的人型机器人的工厂。这听起来像是科幻电影,但实际上它已经出现在现实中。 不久之前,初创企业Agility Robotics向大众宣布将在美国俄勒冈州开设一座占地约…

Vue 官网使用与环境搭建

vue官网网址:https://cn.vuejs.org/vue脚手架文档网址:https://cli.vuejs.org/zh/ vue团队为了使得vue更加好的使用,维护了一些文档。 API是vue的字典,在编写vue的时候,遇到了一些不会的方法那么就去找API&#xff0c…

【linux进程控制(一)】进程终止--如何干掉一个进程?

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 进程终止 1. 前言2. 文章整体…

uinapp微信小程序隐私政策授权

&#x1f680; 隐私弹窗效果图&#xff1a; 1、启用隐私相关功能在manifest.json文件中配置 usePrivacyCheck: true "mp-weixin" : {"__usePrivacyCheck__" : true, },2、创建组件 <template><view><!-- 隐私政策弹窗 --><uni-popu…

从瀑布模式到水母模式:ChatGPT引领软件研发的革新之路

ChatGPT引领软件研发的革新之路 概述操作建议本书优势 内容简介作者简介专家推荐读者对象目录直播预告写在末尾&#xff1a; 主页传送门&#xff1a;&#x1f4c0; 传送 概述 计算机技术的发展和互联网的普及&#xff0c;使信息处理和传输变得更加高效&#xff0c;极大地改变了…

CI523电动车NFC一键启动

Ci523是一颗工作在13.56MHz频率下的非接触式读写芯片&#xff0c;支持读A卡&#xff08;CI523支持读A/B卡&#xff09;&#xff0c;可做智能门锁、电动车NFC一键启动、玩具NFC开锁等应用。为部分要求低成本&#xff0c;PCB小体积的产品提供了可靠的选择。

WoShop跨境电商源码:支持多种货币转换,让购物更加便捷!

随着全球电子商务的飞速发展&#xff0c;跨境电商已经成为了众多企业的必然选择。然而&#xff0c;在跨国交易中&#xff0c;货币转换往往成为了一个令人头疼的问题。为了彻底解决这一难题&#xff0c;我们特别推出了一款支持多种货币转换的跨境电商源码&#xff0c;致力于为用…

大洋钻探系列之一引子

大洋科学钻探计划自1968年启动开始&#xff0c;迄今已有50余年&#xff0c;先后经历了&#xff14;个阶段。深海钻探计划(Deep Sea Drilling Program&#xff0c;DSDP&#xff0c;1968-1983年&#xff09;、国际大洋钻探计划&#xff08;Ocean Drilling Program&#xff0c;ODP…

内衣洗衣机和手洗哪个干净?最好用的迷你洗衣机推荐

内衣洗衣机是家里的一种重要电器&#xff0c;在日常生活中也能起到很大的作用。生活的压力太大了&#xff0c;不是所有人都有空闲的时间手洗自己的内衣、内裤。因此&#xff0c;内衣专用的洗衣机在这方面做得非常好。但是&#xff0c;目前市场上的内衣洗衣机品牌很多&#xff0…

JSPv2之El

​ (一)EL的基本语法 1优点 1 jsp的java太长了,el自己的语言${ 开始 }结束 2el直接返回空字符转,而java直接报错 3使用“lt”代替“<”运算符&#xff0c;如果运算符后面是数字&#xff0c;在运算符 *EL取值时&#xff0c;没有数组的下标越界&#xff0c;没有…

问答平台完整源码系统+知识科普+业界新闻 带完整的部署教程

目前&#xff0c;人们对于获取各种信息和知识的需求越来越大。传统的搜索引擎虽然可以提供大量的信息&#xff0c;但它们往往不能提供针对性的、准确的答案。因此&#xff0c;问答平台作为搜索引擎的一种补充&#xff0c;越来越受到用户的欢迎。开发问答平台的初衷是为了解决人…

亚马逊,美客多,temu新品推广期,如何快速增加review

在亚马逊的排名算法中&#xff0c;Review是一个非常重要的因素。好的Review可以直接提升产品的排名&#xff0c;带来更多的曝光量和流量&#xff0c;进而产生更多的订单。因此&#xff0c;卖家非常重视自己产品的Review数量和星级。产品的Review评分越高&#xff0c;排名越靠前…

4 Tensorflow图像识别模型——数据预处理

上一篇&#xff1a;3 tensorflow构建模型详解-CSDN博客 本篇开始介绍识别猫狗图片的模型&#xff0c;内容较多&#xff0c;会分为多个章节介绍。模型构建还是和之前一样的流程&#xff1a; 数据集准备数据预处理创建模型设置损失函数和优化器训练模型 本篇先介绍数据集准备&am…

Power BI 傻瓜入门 21. 让引人注目的报告变得可访问和用户友好的十种方法

Power BI中读取报告和可视化的能力不应仅限于那些能够区分颜色或能够独立阅读的人。色盲用户&#xff0c;甚至那些需要辅助技术来帮助他们解释数据的用户呢&#xff1f;不应该仅仅因为他们有一个独特的要求就把他们蒙在鼓里。使用Power BI&#xff0c;您可以无缝地整合许多功能…

电脑蓝屏怎么办?3个方法教你快速修复

电脑蓝屏&#xff0c;也被称为蓝屏死机&#xff0c;是计算机用户可能会遇到的一种常见问题。蓝屏通常伴随着错误代码和计算机重新启动&#xff0c;可能导致数据丢失。然而&#xff0c;幸运的是&#xff0c;电脑蓝屏问题通常可以得到解决。在本文中&#xff0c;我们将介绍电脑蓝…

通过51单片机控制28byj48步进电机按角度正反转旋转

一、前言 本项目基于STC89C52单片机&#xff0c;通过控制28BYJ-48步进电机实现按角度正反转旋转的功能。28BYJ-48步进电机是一种常用的电机&#xff0c;精准定位和高扭矩输出&#xff0c;适用于许多小型的自动化系统和机械装置。 在这个项目中&#xff0c;使用STC89C52单片机…

IP地址证书申请注意事项

IP地址证书申请跟常见的域名证书有所区别&#xff0c;首先确保80端口或者443端口处于开放状态&#xff0c;让CA机构在验签过程中能够正确访问到验证值&#xff0c;其实IP地址证书只能采用服务器文件验证&#xff0c;即把CA机构生成的服务器文件TXT文本上传到服务器根目录&#…

VueJs各个版本— 判断当前是开发、生产环境

VueJs各个版本— 判断当前是开发、生产环境 文章目录 VueJs各个版本— 判断当前是开发、生产环境vue项目分类VueCLI21&#xff0c;判断样例2&#xff0c;判断原理 Vue CLI 3 和 Vue CLI 41&#xff0c;判断样例2, 判断原理手动设置-json文件手动设置- .env 文件单个 .env 文件多…