- 博客(7)
- 收藏
- 关注
原创 SDL输出音频的简单使用
sdl作为一个强大的跨平台多媒体库,音频播放是线性连续的,调用相对简单,其后端是通过一个音频回调函数不断向音频设备输出buf,以下是所涉及的接口: 其中,比较重要的是desired中参数的配置和回调函数的实现: sdl中的音频回调函数接口声明是固定,我们可以自己实现函数内部,只要将播放的音频数据赋值给stream即可,以下是一个简易的音频回调函数实现:以下是一个简单的dome: 喜欢的朋友可以给个赞和关注,谢谢!
2024-10-15 16:23:47
462
原创 AAC 音频传输流格式 ADTS 分析
编码 AAC 裸流的时候,会遇到写出来的 AAC ⽂件并不能在 PC 和⼿机上播放,很⼤的可能就是 AAC ⽂件的每⼀帧⾥缺少了 ADTS 头信息⽂件的包装拼接。与传统的音频编码格式相比,AAC 可以在相同的文件大小下提供更好的音频质量,或者在相同的音频质量下提供更小的文件大小。这种格式的特征是可以确定的找到这个⾳频数据的开始,不需进⾏在⾳频数据流中间开始的解码,即它的解码必须在明确定义的开始处进⾏。每⼀帧的 ADTS 的头⽂件都包含了⾳频的采样率,声道,帧⻓度等信息,这样解码器才能解析读取。
2024-03-23 11:19:05
1832
原创 基于SDL的yuv视频播放
YUV的播放涉及到创建窗口和创建线程,在窗口中传入YUV码流数据,以达到播放视频的目的。窗口拉伸时,相应的长宽数据也会打印在命令框上。## 1 基于SDL的yuv视频播放。显示窗口的长宽比例可自己设置。
2024-03-17 19:34:54
737
1
原创 基于SDL的多线程任务执行
◼ SDL条件变量(信号量)等待/通知:SDL_CondWait/SDL_CondSingal。◼ SDL条件变量(信号量):SDL_CreateCond/SDL_DestoryCond。◼ SDL互斥锁:SDL_CreateMutex/SDL_DestroyMutex。◼ SDL锁定互斥:SDL_LockMutex/SDL_UnlockMutex。◼ SDL线程创建:SDL_CreateThread。◼ SDL线程等待:SDL_WaitThead。
2024-03-15 09:16:32
442
1
原创 基于SDL的键鼠事件触发
在音视频的开发中,一个完整的播放器需要满足各种事件操作,例如鼠标左键暂停、按Q退出等。• SDL_PumpEvents():将硬件设备产生的事件放入事件队列,用于。读取事件,在调用该函数之前,必须调用SDL_PumpEvents搜集。• SDL_PeepEvents():从事件队列提取一个事件。大家可以更改指令来实现键鼠事件的跳转,以完成相应的功能。• SDL_WaitEvent():等待一个事件。• SDL_PushEvent():发送一个事件。鼠标在白屏上移动时,我们可以看到鼠标所在的坐标。
2024-03-14 18:40:14
554
1
原创 基于SDL的Windows创建及窗口显示
运行结果中白色方块在窗口上跳动,我们可以根据自己的需求在 SDL_UpdateTexture()这个函数中更改数据以达到播放yuv格式视频的目的,具体操作在后面的帖子中会提及。◼ SDL_CreateRenderer():创建渲染器SDL_Renderer。◼ SDL_CreateTexture():创建纹理SDL_Texture。◼ SDL_CreateWindow():创建窗口SDL_Window。◼ SDL_Init():初始化SDL系统。◼ SDL_Quit():退出SDL系统。
2024-03-13 12:08:41
941
原创 ffmpeg合成视频/图像四宫格
1.2.3.4.mp4为文件路径,out.MP4为输出文件路径,通过nullsrc创建overlay画布,画布大小640:480,使用[0:v][1:v][2:v][3:v]将输入的4个视频流去除,分别进行缩放处理,然后基于nullsrc生成的画布进行视频平铺,命令中自定义upperleft,upperright,lowerleft,lowerright进行不同位置平铺。`setpts`过滤器选项的语法是`setpts=expression`,其中`expression`是一个用于计算新PTS的表达式。
2024-03-10 10:03:09
1070
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅