自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除