音视频
通过各种资料学习音视频
路和远方
这个作者很懒,什么都没留下…
展开
-
SDL播放YUV
## 创建测试文件```// 将mp4转yuvffmpeg -i hello.mp4 hello.yuv// 输出内容如下:[mov,mp4,m4a,3gp,3g2,mj2 @ 000001a216228800] overread end of atom 'colr' by 1 bytesInput #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hello.mp4': Metadata: major_brand : isom minor_ver原创 2022-06-14 14:50:48 · 373 阅读 · 0 评论 -
SDL显示BMP
SDL显示BMP原创 2022-06-06 11:52:22 · 188 阅读 · 0 评论 -
FFmpeg视频录制(WIN)
# FFmpeg视频录制(WIN)## 命令### 查看当前平台可用的设备```ffmpeg -devices// 结果如下:Devices: D. = Demuxing supported .E = Muxing supported -- D dshow DirectShow capture // DirectShow,是Windows平台的多媒体系统库 D gdigrab GDI API Windows frame grabber D原创 2022-06-05 22:57:50 · 1216 阅读 · 0 评论 -
FFmpeg之YUV
通常用A:B:C的形式来表示,比如4:4:4、4:2:2、4:2:0命令解释获取支持的采样格式原创 2022-06-05 21:09:34 · 1251 阅读 · 0 评论 -
AAC解码
AAC 解码原创 2022-06-04 16:51:28 · 722 阅读 · 0 评论 -
AAC编码
本篇使用的FFMPEG需要按照WIN下编译FFMPEGfdk-aac对PCM文件有参数要求必须是16位整数的PCM支持的采样率有(Hz):命令行基本使用常用参数设置输出比特率设置输出规格取值如下:一旦设置了输出规格,会自动设置一个合适的输出比特率...原创 2022-06-03 19:11:20 · 810 阅读 · 0 评论 -
WIN下编译FFMPEG
MSYS2 :https://www.msys2.org/下载FFMPEG 源码参数配置,编译,安装配置所需的库文件FFmpeg最终会被安装到目录中拷贝FFMPEG所需的dll文件将配置到环境变量中原创 2022-06-02 11:39:25 · 588 阅读 · 0 评论 -
QT下FFMPEG录音生成WAV文件
参考:[PCM转WAV](https://blog.csdn.net/shuzhuchengfu/article/details/125050299)[录音](https://blog.csdn.net/shuzhuchengfu/article/details/125029548)### 代码实现```cpp#include "record_thread.h"#include #include extern "C" { #include原创 2022-06-01 15:07:30 · 414 阅读 · 0 评论 -
QT下SDL播放WAV文件
## 创建测试资源```// 获取资源文件ffmpeg -i demo.mp4 in.wav```## 播放### 命令行```ffplay in.wav```### 代码#### 初始化子系统```cpp// 1.初始化子系统if(SDL_Init(SDL_INIT_AUDIO)){ qDebug()原创 2022-06-01 11:35:09 · 287 阅读 · 0 评论 -
QT下FFMPEG重采样
QT下FFMPEG重采样命令行方式// 转换ffmpeg -ar 44100 -ac 2 -f s16le -i 44100_s16le_2.pcm -ar 48000 -ac 1 -f f32le 48000_f32le_1.pcm// 播放测试ffplay -ar 48000 -ac 1 -f f32le 48000_f32le_1.pcm代码实现 qDebug() << "开始重采样线程"; // 输出参数 // 立体音 int inChLay原创 2022-05-31 19:23:04 · 158 阅读 · 0 评论 -
PCM转WAV
PCM转WAVWAV文件标准QT下实现Wav文件头#ifndef FFMPEGS_H#define FFMPEGS_H#include <QObject>#define AUDIO_FORMAT_PCM 1#define AUDIO_FORMAT_FLOAT 3// WAV文件头(44字节)typedef struct { // RIFF chunk的id uint8_t riffChunkId[4] = {'R', 'I', 'F', 'F'};原创 2022-05-30 17:28:02 · 488 阅读 · 0 评论 -
QT实现SDL播放PCM文件(WIN)
QT实现SDL播放PCM文件(WIN)QT配置SDL环境(WIN)下载SDL文件http://www.libsdl.org/download-2.0.php选择对应的版本SDL2-2.0.22-win32-x64.zip (64-bit Windows)配置环境// xxx.pro文件win32{ SDL_HOME = XXX/SDL2-devel-2.0.22-mingw/SDL2-2.0.22/x86_64-w64-mingw32}# 添加头文件INCLUDEPATH +原创 2022-05-30 11:47:08 · 299 阅读 · 0 评论 -
QT实现FFMPEG录音功能(WIN)
配置在xx.pro文件中配置配置环境变量在系统的Path中配置XXX\ffmpeg-4.3.2-2021-02-27-full_build-shared\bin原创 2022-05-29 12:41:18 · 480 阅读 · 0 评论 -
Android之音频和视频的提取
Android之音频和视频的提取权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />private boolean checkPermission() { return ActivityCompat.checkSelfPe原创 2021-09-30 16:03:02 · 2029 阅读 · 3 评论 -
AudioTrack的基本使用
AudioTrack之前我们讲过MediaPlayer,MediaPlayer就相当于AudioTrack的包装层,它可以播放MP3,WAV,OGG,AAC,MIDI等,而AudioTrack只能播放PCM数据流AudioTrack的构造方法public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes, int mode) { ... }原创 2020-05-17 23:35:55 · 7987 阅读 · 0 评论 -
MediaPlayer的基本使用-播放音乐/视频
1.创建MediaPlayer对象 private MediaPlayer mMediaPlayer = new MediaPlayer();2.准备// 本地资源File wavFile = new File(getExternalFilesDir(Environment.DIRECTORY_MUSIC), "test.wav");if (!wavFile.exists()) return;// 本地路径/网络路径 支持http、rtspmMediaPlayer.setDataSou原创 2020-05-17 12:36:04 · 1194 阅读 · 0 评论 -
pcm转wav
pcm转wav/** * pcm 转 wav 工具类 */public class PcmToWavUtil { /** * 缓存的音频大小 */ private int mBufferSize; /** * 采样率 */ private int mSampleRate; /** * 声道数 */ private int mChannel; /** * @param sa原创 2020-05-17 10:43:56 · 816 阅读 · 0 评论 -
Android之录音功能
Android之录音功能1.需要权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.RECORD_AUDIO" />2.检查权限// 需要申请的运行时权限private String[] permissions = new String[]{ Manif原创 2020-05-15 11:53:14 · 3576 阅读 · 0 评论 -
SurfaceView的基本使用
SurfaceView的基本使用 页面代码1.页面代码<SurfaceView android:id="@+id/sv_draw" android:layout_width="match_parent" android:layout_height="match_parent" />2.逻辑代码// 创建控件对象final SurfaceView svDraw = findViewById(R.id.sv_draw);// 设置回调方法svDraw2.get原创 2020-05-15 10:42:30 · 240 阅读 · 0 评论