首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

音视频技术(4)-SDL播放PCM

SDL 是一套跨平台的音视频播放框架,对齐了底层硬件的差异,开发者可以专注于音视频的处理,本文记录在iOS上使用SDL播放pcm音频裸数据的实现过程。pcm是音频的裸数据。...image.png 代码编写,代码不多,100行左右即可实现,核心代码实现如下 执行流程: 初始化SDL --> 打开pcm文件-->调用SDL播放-->SDL回调里取每一帧的播放数据-->...当前线程等待pcm播放完,然后再去取下一个缓存的数据 #import "AudioPlayerSDL2.h" static Uint32 audio_len; static Uint8 *audio_pos...free(pcm_buffer); } fclose(fp); SDL_Quit(); return 0; } 使用ffmpeg从mp4中提取pcm文件...提取:ffmpeg -i 1.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm 播放:ffplay -ac 2 -ar 44100 -f s16le out.pcm

89120

android SDL系列讲解(十三) 播放音乐库 SDL_mixer教程

教程 SDL系列讲解(九) 异常退出分析 SDL系列讲解(十) 按键处理流程 SDL系列讲解(十一) SDL_QUIT流程 SDL系列讲解(十二)创建窗口流程 前言 讲解完了图片,文字,这节我们来看下怎么播放声音...SDL默认是可以播放wav以及pcm格式的音乐,但是使用起来比较麻烦,所以官网给我们提供了一个三方库SDL_mixer,用来支援更多的音频格式,比如mp3,midi以及ogg,关于flac无损音乐,后续有个移植过程...验证播放音乐 下载一首歌曲,这里下载薛之谦的《动物世界》,放置在项目的assets目录下。....mk 加入: 编译之后,这是我们可以播放flac格式的音乐了。...问题 flac编译出来,可以播放音乐,但是比较卡,具体此问题,留作疑问。

2.1K100

【音视频连载-006】基础学习篇-SDL 播放 YUV 视频文件

YUV 视频文件素材 还是要准备一下 YUV 视频素材,不用网上到处去下载,用 FFmpeg 命令将 mp4 文件转换成 yuv 文件就好了。...ffplay -f rawvideo -video_size 100x100 yuv_filename.yuv 以上命令会打开一个窗口去播放视频内容,如果播放的和原来 mp4 文件内容一致,说明转换是成功的...以下就是实际的运行效果: 以上的代码还是存在问题的,比如 YUV 视频播放的很快,比原来的 mp4 播放快多了。...这是因为播放的速率控制完全是根据 SDL_PollEvent 事件响应的速度来的,而不是根据 mp4 的帧率来播放。...可以通过自定义 SDL 事件,然后根据帧率控制自定义事件的发送速率,实现控制播放速度的目的。

78110

Qt音视频开发26-ffmpeg播放

,声音播放采用的sdl总感觉多了个依赖怪怪的,而且很多初学者也反映希望采用Qt自身的类来播放),近期正好把这两个难点一一攻破了,音视频同步采用的外部时钟同步,声音播放采用的Qt自带的QAudioOutput...(并没有采用sdl,省去学习sdl开源库的成本),播放器的demo如期进行。...二、功能特点 多线程实时播放视频流+本地视频+USB摄像头等。 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。 多线程显示图像,不卡主界面。...录像文件存储支持裸流和MP4文件。 音视频完美同步,采用外部时钟同步策略。 支持seek定位播放位置。 支持qsv、dxva2、d3d11va等硬解码。...支持安卓和嵌入式linux,交叉编译即可。

1.5K00

FFmpeg简易播放器的实现-音视频播放

封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。...简易播放器的实现-音视频播放 2.1 实验平台 实验平台:openSUSE Leap 42.3 FFmpeg版本:4.1 SDL版本:2.0.9 FFmpeg开发环境搭建可参考“FFmpeg开发环境构建...player_avideo/ffplayer.c 源码清单中涉及的一些概念简述如下: container: 对应数据结构AVFormatContext 封装器,将流数据封装为指定格式的文件,文件格式如AVI、MP4...window: 对应数据结构SDL_Window 播放视频时弹出的窗口。...参考资料 [1] 雷霄骅,视音频编解码技术零基础学习方法 [2] 雷霄骅,最简单的基于FFMPEG+SDL的视频播放器ver2(采用SDL2.0) [3] SDL WIKI, https://wiki.libsdl.org

2.5K20

Qt音视频开发7-ffmpeg音频播放

一、前言 之前用ffmpeg解码出来了音频,只是做了存储部分,比如存储成aac文件,播放的话早期用的是sdl播放音频,自从Qt5以后提供了QAudioOutput来播放输入的音频数据,就更加方便了,可以直接将解码好的音频数据写入就能播放了...,这些就少了个学习sdl的成本,而且和Qt就更加融合,不需要额外的第三方库,解码好的视频,其实就是一张张图片数据,可以直接用QPainter绘制或者QOpenGlWidget通过GPU显示,解码好的音频用...二、功能特点 多线程实时播放视频流+本地视频+USB摄像头等。 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。 多线程显示图像,不卡主界面。...可直接拖曳文件到ffmpegwidget控件播放。 支持h265视频流+rtmp等常见视频流。 可暂停播放和继续播放。 支持存储单个视频文件和定时存储视频文件。...录像文件存储支持裸流和MP4文件。 支持qsv、dxva2、d3d11va等硬解码。 支持opengl绘制视频数据,极低CPU占用。 支持嵌入式linux,交叉编译即可。

1.4K20

ffmpeg常用库、术语、API、数据结构总结

、flv、mov等视频格式; 媒体流(Stream):一个容器(如mp4文件)中可存在多个流,可以是视频流、音频流、字幕流。...(例如:把一个mp4文件,拆分成纯视频流、纯音频流和纯字幕流)。...编译时需要先编译SDL,因为此库是以来SDL的,该设备模块库播放声音与播放视频使用的都是SDL库。 libpostproc 该年模块用于后期处理,与libavfilter库配合使用。...例如(windows下的dshow,Linux下的V4L2等); avformat_network_init():初始化网络库以及网络加密协议相关的库,我们在推流或者拉流时就会使用到。...,就可以使用此函数进行定位播放; av_seek_frame():根据流的大小定位文件的位置; 封装格式步骤: 1、分配解复用器上下文(avformat_alloc_context()); 2、根据

86130

FFmpeg学习笔记汇总

如果想要使用fplay,那么系统首先需要有SDL来进行fplay的基础支撑。...注意: 有时通过源代码编译生成fplay不一定能够成功,因为mplay在旧版本时依赖于SDL-1.2,而fplay在新版本时依赖于SDL-2.0,需要安装对应的SDL才能生成flaya 1.6 FFmpeg...FFmpeg官方建议用户自行编译使用FFmpeg的最新版本,因为对于一些操作系统,比如Linux系统(无论是Ubuntu还是RedHat),如果使用系统提供的软件库安装fimpeg时会发现其版本相对比较老旧...-1.2版本,就会默认将ffplay编译生成出来,如果不包含SDL-1.2或者版本不是SDL-l.2时,将无法生成ffplay文件,所以,如果想使用flay进行流媒体播放测试,则需要安装SDL-1.2....如果要了解MP4的格式信息,首先要清楚几个概念,具体如下。

1.1K20

ffplay源码分析1-概述

ffplay是FFmpeg工程自带的简单播放器,使用FFmpeg提供的解码器和SDL库进行视频播放。...封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。...1.3 SDL播放过程简介 本节内容引用自“雷霄骅,最简单的视音频播放示例7:SDL2播放RGB/YUV” SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库...SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。...目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。用下面这张图可以很明确地说明SDL的位置。 ?

1.9K10

FFmpeg简易播放器的实现-视频播放

封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。...简易播放器的实现-视频播放 2.1 实验平台 实验平台:openSUSE Leap 42.3 FFmpeg版本:4.1 SDL版本:2.0.9 FFmpeg开发环境搭建可参考“FFmpeg开发环境构建...player_video/ffplayer.c 源码清单中涉及的一些概念简述如下: container: 对应数据结构AVFormatContext 封装器,将流数据封装为指定格式的文件,文件格式如AVI、MP4...window: 对应数据结构SDL_Window 播放视频时弹出的窗口。...的视频播放器ver2(采用SDL2.0) [4] 雷霄骅,最简单的视音频播放示例7:SDL2播放RGB/YUV [5] 使用SDL2.0进行YUV显示 [6] Martin Bohme, An ffmpeg

4.3K40
领券