- 博客(97)
- 资源 (4)
- 收藏
- 关注
原创 如何使用ffmpeg 去除MP3音频文件头部与尾部的静音数据
areverse滤波器用于反转音频文件,以便应用静音删除滤波器两次,以处理开头和结尾的静音数据。FFmpeg将读取输入的MP3文件,并应用silenceremove音频滤波器。完成处理后,将会在指定的输出路径中生成去除了头部和尾部静音数据的MP3文件。用于设置滤波器的阈值,以检测和删除静音数据。
2023-06-21 17:31:01 1254
原创 如何集成谷歌lyra 编解码器?
Lyra是一种高质量、低码率语音编解码器,即使在最慢的网络上也提供语音通信。编码应用了传统的编解码数字信号处理的技术,解码端主要通过机器学习生成的声纹生成模型,根据数千小时的语音数据训练该生成模型,并进行优化(类似于WaveNet),以准确重新创建输入音频。
2023-03-29 11:26:51 1712 2
原创 C++ 实现pcm 转wav
/ = 每秒字节数 : samples_per_sec * bits_per_sample / 8。// = 采样率 : 8000 | 6000 | 11025 | 16000。// = 每采样点字节数 : wBitsPerSample / 8。// = 量化比特数: 8 | 16。// = 通道数 : 1。//读取pcm 到内存。/* 默认wav音频头部数据 *///定义wav头,写入文件。/* wav音频头部格式 */
2023-02-28 14:49:38 1160
转载 C++ 的 std::promise 和 std::future
编写多线程应用时,无法避免的要进行线程间数据同步/通信。和是 C++ 进行单向数据传递的一种方式。是数据的输入端,是数据的输出端。
2023-02-01 11:28:59 691 2
原创 C++ 智能指针 : auto_ptr 、unique_ptr、 shared_ptr、 weak_ptr
1、智能指针设计初衷: 智能指针实际是类,超过类的作用域后,析构函数会自动回收资源,为程序员管理申请的堆内存,避免内存泄漏
2023-01-05 09:38:13 518
原创 C++单例模式 : 懒汉模式 与 饿汉模式
单例模式:只能有一个实例,有懒汉和饿汉区分,实现核心思想: 1.构造函数私有化 2.使用静态函数作为接口来获取类对象
2023-01-04 10:01:01 2546 2
原创 C++ 简单工厂模式 与 工厂模式
一个工厂,多个产品。产品需要有一个虚基类。通过传入参数,生成具体产品对象,并利用基类指针指向此对象。通过工厂获取此虚基类指针,通过运行时多态,调用子类实现简单工厂 的设计是的,因为当我门新增一个产品,简单工厂类内部需要修改逻辑以生产对应的产品类;
2023-01-03 11:20:03 771
原创 C++ 跨平台文件读写
还在使用linux 自带的系统函数 fread 、fwrite么?考虑一下使用C++ 的ifstream、ofstream 一套代码,多平台运行,解放需要使用宏定义做平台区分读写的麻烦。// 获取filestr对应buffer对象的指针。// 调用buffer对象方法获取文件大小。// 业务逻辑,可对内存数据自行进行修改。// 加载文件中数据到内存。//释放内存、关闭文件句柄。// 采用二进制方式打开。// 输出内存数据到文件。
2022-12-12 14:47:10 1180
原创 ffmpeg 命令行 pcm 编码 opus
将16k,16bit,单声道的pcm裸流编码成opus裸流(不带ogg封装格式)将16k,16bit,单声道的pcm裸流编码成opus裸流(带ogg封装格式)
2022-11-11 15:48:19 1135
原创 uint 正数 与 int 负数 相加,会变成很大的正数
从结果来看,uint + int 负数,变成了一个很大的数:4294967274, 如果项目程序中有这种代码,无疑是埋下巨坑,比如一个小白,他肯定会觉得0 + -22 = -22 < 0, 然后高兴的以为,这肯定会运行到小于0 的代码逻辑中,导致最后程序运行的结果事与愿违。uint 取值范围:0 ~ 2^32 - 1, uint之所以是32次方,是因为无符号,相对int省去一个正负符号的占位。int 取值范围: -2^31 ~ 2^31-1。
2022-11-10 11:54:56 881
原创 C++内存泄漏检测
valgrind --tool=memcheck --leak-check=full --log-file=reportlead ./ifly_audiocoding.out
2022-10-31 17:33:20 94
原创 ffmpeg 命令行 pcm 编码 MP3
s16le表示:s表示有符号,l表示小端。可以用 s16be代替,表示s有符号b表示大端。参数的顺序,如果是在源文件前是作用于源文件的。
2022-09-08 10:59:58 2031
转载 ffmpeg windows编译动态库、静态库
之前4月份的时候在公司没编译出来,直接用的别人编译好了的库做的开发,现在有时间了,花了半天的时间编译成功,包括Windows下.lib和.dll,使用Android NDK编译生成的静态库.a和动态库.so。, 傻瓜式安装,但是要自己配置环境变量,下载后在开始菜单能看到如下4个程序,我们使用的是MSYS2 MinGW 64-bit,我的安装目录是E:\msys64。,直接下载最新的就可以,解压后放到E:\msys64\home\ivan(如果你是C盘就放C:\msys64\home\你的用户名)
2022-08-23 20:34:37 1758 2
转载 TCP UDP 面试精华
原文:一文搞定 UDP 和 TCP 高频面试题! - 知乎1、UDP 和 TCP 的特点与区别用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成
2022-08-22 15:58:40 546
原创 1、构造函数、析构函数可以写成虚函数么?
1、在多态当中,基类的方法被定义成 虚函数,才可以通过基类指针动态调用派生类的方法,同理当我们delete 基类指针,如果基类析构函数不是虚函数,就无法动态调用到派生类的析构函数,导致派生类的对象无法析构,造成内存泄漏。反之,基类析构函数被定义成 虚函数的时候,delete基类指针时,会先 析构派生类对象,再 析构基类对象。所以构造函数不能是虚函数。1、因为创建一个对象时要确定对象的类型,而虚函数是在运行时确定其类型的,而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型。...
2022-08-17 09:38:36 687
转载 node js 怎么调用c++ ?
在 NodeJS 中,和其他语言编写的代码通信主要有两种方案:在对这两种方式进行比较后,发现这两种方式各有优劣。首先,AddOn 技术比较通用,它可以使用 C++代码来拓展 Node 的行为,很多库都是使用这种方式来完成一些比较底层操作(比如和操作系统的一些通信)的。但是它写起来比较麻烦,要编写一个 C++项目,还要按照 NodeJS 的规范 export 相应的函数,而且每次安装的时候都需要进行编译(以适应本地 Node 的版本)。如果只是调用一个 DLL,那就还需要在项目里重新包装一遍 DLL 的接口。
2022-07-01 15:24:25 3837 1
原创 js调用c++实现的dll, Error: Dynamic Linking Error: Win32 error 126 问题原因
js调用c++实现的dll, Error: Dynamic Linking Error: Win32 error 126 问题原因
2022-06-17 16:54:31 3024 1
原创 python 翻译word文档
原文地址:用 Python 写的文档批量翻译工具,效果竟然超越付费软件?_平静愉悦的博客-CSDN博客接入与错误码文档见百度开放平台:百度翻译开放平台from docx import Documentfrom docx.oxml.ns import qnimport requestsimport randomimport jsonfrom hashlib import md5import timeimport globimport osdef make_md5(s,.
2022-05-26 17:47:07 449
原创 windows 开发注意事项
1. VisualStudio2019 DLL生成并使用教程(C++)最详细Demo教程_ytouch-CSDN博客_vs2019 生成dll2.关于Dll中导出string的问题 - 张云临 - 博客园
2022-02-23 19:43:09 258
原创 ffmpeg指定位置添加文字图片水印
FFmpeg命令详解_Android&Java&C-CSDN博客利用ffmpeg实现添加图片水印和文字水印,添加多个水印。代码和命令实现及中文水印乱码_浪漫老狼的博客-CSDN博客_ffmpeg添加文字水印1.同时添加图片背景与双语字幕sprintf(filter_des,"movie=%s[wm];[in][wm]overlay=%d:main_h-overlay_h-%d,subtitles=filename=%s:force_style='Fontname=%s
2021-12-24 17:45:16 2677 3
转载 ffmpeg 添加水印
ffmpeg中文水印乱码两种原因1.字符编码格式原因,中文必须是utf8编码格式的(我遇到的问题,在vs2013上写的中文,已做编码格式转码,放到centos7.2上编译运行也会出现中文乱码的问题,在Linux上把中文水印重新输入一遍就OK了)2.字体文件fontfile原因,最好去C:\Windows\Fonts目录下去找,比如说宋体,黑体这些是不会乱码的1.ffmpeg命令添加视频水印ffmpeg –i input.flv -acodec copy-vcodec copy -vf "
2021-12-23 11:04:43 5639
原创 ffmpeg支持的字体颜色种类
FFmpeg Utilities Documentation‘AliceBlue’0xF0F8FF‘AntiqueWhite’0xFAEBD7‘Aqua’0x00FFFF‘Aquamarine’0x7FFFD4‘Azure’0xF0FFFF‘Beige’0xF5F5DC‘Bisque’0xFFE4C4‘Black’0x000000‘BlanchedAlmond’0xFFEBCD‘Blue’0x0000FF‘BlueViole
2021-12-22 20:42:30 1207
原创 ass字幕格式解析
[V4+ Styles]Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV,EncodingSty.
2021-12-22 20:22:42 14577
原创 ffmpeg 视频字幕添加相关三方库
libx264下载地址:x264, the best H.264/AVC encoder - VideoLANIndex of /pub/videolan/x264/snapshots/libfreetype下载地址:The FreeType Projectfribidi下载地址:https://github.com/fribidi/fribidi/releases/download/v1.0.11/fribidi-1.0.11.tar.xzfontco.
2021-12-10 11:32:28 1946
原创 string对象的内存释放
1.erase 函数只清空数据,不会释放数据所占用的内存2.想要人为释放string对象占用的内存可以使用c++11提供shrink_to_fit的:
2021-10-29 11:16:28 1805
原创 ffmpeg同时添加视频字幕与背景,自定义字体,大小,位置
ffmpeg.exe -i sr.mp4 -c:v libx264 -c:a copy -vf "movie=background.png[wm];[i][wm]overlay=main_w-overlay_w-240:main_h-overlay_h-40,subtitles=zimu.srt:force_style='Fontname=黑体,Fontsize=14,Alignment=0,MarginL=60,MarginV=15'" -b:v 9997K output.mp4...
2021-10-08 18:30:00 4231 1
原创 ffmpeg编译命令
./configure --prefix=/usr/local/ffmpeg --pkg-config-flags="--static" --enable-gpl --enable-small --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libmp3lame --disable-asm --enabl..
2021-09-26 17:32:02 1147
原创 flac文件格式
Flac中所有数值都是整形,大端模式,除非特别指出,否则数值都是unsigned的。一些概述:Flac比特流以“fLaC”开始,接着是必须的metadata块(STREAMINFO),然后是其他可选的metadata块,接着是音频帧。Flac做多可以支持到128类metadata,已经定义的包括下面几种:A。STREAMINFO:包含整个比特流的一些信息,如采样率、声道数、采样总数等。他一定是第一个metadata而且必须有。之后可以接其他metadata,这些metadata可以不用识别直
2021-09-24 17:15:08 359
原创 m4a文件格式分析
M4A是一种用于压缩MPEG-4编码文件的扩展名。MPEG-4官方扩展名是MP4格式,它包含了音频文件及视频文件。而MP4文件中标准的音频格式无疑就是M4A了。其实M4A格式以前并不知名,直到2007年苹果公司首次用M4A与AAC、ALAC等作为iTunes及iPod歌曲收录格式,它才逐渐使用广泛起来。M4a不受版权保护。文件格式:由很多box组成存储形式:box length(4bit 大端格式) + box type(4 bit) + box content (box lengt...
2021-09-23 19:27:53 7296
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人