FFmpeg – 音频处理基本概念以及音频重采样(采样率转换)
1 音频采样率 音频采样设备每秒抽取音频样本的次数。 2 音频格式及量化精度(位宽) 每种音频格式有不同的量化精度(位宽),位数越多,表示值就越精确,声音表现自然就越精准。FFMpeg中音频格式有以下几种,每种格式有其占用的字节数信息: enum AVSampleFormat { A…
- FFmpeg
- 2020-04-28
Chrome中播放时视频编码为.h264和音频编码为acc,采样率为48000,双通道的视频文件时音画不同步
1 Chrome播放MP4文件音画不同步 最近写web出现了一个巨坑,Chrome浏览器在播放mp4文件出现音画不同步的情况,这个mp4文件视频编码为.h264,音频编码为acc,但是采样率为48000,采样位数为16,双声道,如下图所示。 但是换了Firefox和不适用chrome内核的Edge浏…
- 工具软件网站
- 2020-04-27
C++11 – 基于无锁队列的单生产者单消费者模型
1 单生产者单消费者无锁队列 Github项目地址:https://github.com/cameron314/readerwriterqueue 1.1 成员函数说明 try_enqueue:如果队列中有空间,则使元素的副本入队。如果元素已入队,则返回true,否则返回false。不分配内存。 e…
- C++
- 2020-04-22
Centos7 – 配置Go环境
1 GO官网 英文:https://golang.org/dl/ 中文(适用于国内网络环境):https://golang.google.cn/dl/ 2 GO下载 下载带linux-amd64.tar.gz的文件,右键该文件,复制链接地址,比如上述的压缩包的链接地址为:https://dl.goo…
- Go语言
- 2020-04-15
Centos7 – frp内网穿透,访问内网web服务/访问内网websocket服务
1 frp Github地址:https://github.com/fatedier/frp Github发布包地址:https://github.com/fatedier/frp/releases 官方教程:https://github.com/fatedier/frp/blob/master/R…
- Linux运维
- 2020-04-09
C++11/std::shared_ptr – 循环引用问题
在C++11智能指针的使用过程中,一个很大的陷阱就是陷入了循环引用问题,这个问题类似于大型项目中两个头文件互相包含的问题,而在C++11中如果因为使用智能指针而引发了循环引用问题,那么其结果会导致智能指针无法释放,导致动态内存泄漏。 1 循环引用 下面是一个典型的循环引用示例: class B; c…
- C++
- 2020-04-02
C++11/std::atomic – 原子变量(不加锁实现线程互斥)
1 原子操作 原子操作:一个独立不可分割的操作。多线程编程需要保证线程安全,而线程安全一个很重要的特性就是原子性,即在同一时刻只有一个线程对原子进行操作,保证数据访问的互斥性。 2 C++11原子变量 C++11提供了原子类型std::atomic,可以使用任意的类型作为模板参数。在多线程中如果使用…
- C++
- 2020-04-02
C++11/std::condition_variable – 生产者消费者模型
代码示例: #include <iostream> #include <thread> #include <chrono> #include <mutex> #include <deque> #include <condition_v…
- C++
- 2020-04-01
C++11/std::thread – 线程的基本用法
1 获取CPU核心数量 使用std::thread::hardware_concurrency()获取当前CPU核心数量。 代码示例: #include <iostream> #include <thread> int main() { std::cout << …
- C++
- 2020-04-01
C++11/std::thread – 线程管理join/detach
1 join方法 代码示例: #include <iostream> #include <thread> void HelloWorld() { std::cout << "hello world" << std::endl; } int main()…
- C++
- 2020-04-01
最新评论