![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
自制音视频播放器
文章平均质量分 64
音视频实战项目
小时候挺菜丶
只用一样东西,不明白他的道理,实在不高明
展开
-
BPlay1.0系列(10:项目优化)
目前BPlay1.0的功能已经全部完成,但是在使用时还存在许多缺陷,后面会继续优化这些点,使体验更加舒适。原创 2022-10-23 21:18:54 · 424 阅读 · 1 评论 -
BPlay1.0系列(9:按钮联动和进度条)
目前BPlay1.0的主要功能(视频播放)已经基本实现,但是开启/暂停按钮和进度条还是无法控制视频的播放进度,本节将这两个功能收尾掉。原创 2022-10-16 22:18:30 · 169 阅读 · 0 评论 -
BPlay1.0系列(8:音视频同步)
实现了音频数据的播放,但是实际上拿媒体数据测试时会发现视频播放的速度要远快与音频播放速度,这样就导致视频播放完成之后音频还在播放,这就是视音频不同步现象。本文将修复这个Bug,让音视频数据播放同步起来。原创 2022-10-15 21:05:26 · 568 阅读 · 0 评论 -
BPlay1.0系列(7:音频播放)
已经完成了媒体文件的视频数据播放功能,但是播放时速度(帧率)无法控制并且是没有声音的,这就需要实现音频播放的功能来解决这两个问题。原创 2022-10-15 14:18:47 · 184 阅读 · 0 评论 -
BPlay1.0系列(6:视频播放)
前面我们已经完成了工程的构建、ffmpeg装载以及基本控件添加,现在就开始BPlay1.0核心部分的分析:视频播放。原创 2022-10-06 21:44:37 · 546 阅读 · 0 评论 -
BPlay1.0系列(5:自定义按钮控件)
开始/暂停按钮时每个视频播放器必备的部分,BPlay1.0也需要配备一个按钮来控制媒体文件的开/关,选择自定义一个PushButton来实现这个开关的功能,首先创建一个新的类继承于QPushButton,我将它命名为Bbutton:这个按钮首先想要具备的功能是:1、每次鼠标点击后,开关的状态需要改变,同时需要通知媒体做出相应的动作;2、媒体加载完、播放完等需要按钮改变状态时需要与其联动。原创 2022-10-06 20:41:05 · 157 阅读 · 0 评论 -
BPlay1.0系列(4:Bffmpeg单例模式设计+媒体流文件检测)
成功装载了ffmpeg库,接下来就是媒体文件的载入检测,但是在实际实现时发现:Bffmpeg加载媒体文件时,需要记录媒体文件相关信息:上下文、音视频索引等,这些需要定义成员变量保存在Bffmpeg类中,加载文件的方法如果定义成静态成员函数,那么将无法访问到保存的媒体信息变量,如果定义成普通成员函数,则需要实例化一个对象,但该对象在工程中只需要一个即可。基于以上考虑,最后选择采用单例模式来设计Bffmpeg。原创 2022-10-05 13:09:57 · 414 阅读 · 0 评论 -
BPlay1.0系列(3:QT下装载ffmpeg)
实现了从本地向BPlay1.0载入一个媒体文件,但是却无法解析该文件,本节将通过向QT载入ffmpeg解决这个问题。原创 2022-10-04 20:03:25 · 150 阅读 · 0 评论 -
BPlay1.0系列(2:Bwidget控件创建和打开媒体文件)
QFileDialog模态框反回后,便可获取到媒体文件路径,此时需要做判空和媒体文件有效性校验,上面代码已经进行了判空处理,媒体文件有效性判断想要装载ffmpeg库后才可以处理,ffmpeg库装载在本系列下一小节进行介绍!Bwidget具体的功能暂时可以先不实现,后续调试时按需添加即可!原创 2022-10-04 17:27:23 · 244 阅读 · 0 评论 -
BPlay1.0系列(1:方案设计+工程构建)
首先介绍一下BPlay1.0:BPlay1.0是一款基于ffmpeg和QT制作的本地视频播放器,1.0版本功能比较基础,旨在软件基本框架的设计以及音视频功能测试.原创 2022-10-04 16:41:47 · 141 阅读 · 0 评论 -
使用FFMPEG5.0和SDL2.0编写视频简单播放器
使用ffmpeg5.0和SDL1.2编写视频播放器daemon时,视频卡在第一帧会报错:测试例程如下:int B_Play_Openfile(const char* szFilePath){ int iRet = 0; int iVideo_index = 0; char szError[128] = {0}; unsigned char *out_buffer = NULL; AVFormatContext *FormatContext = avformat_alloc_context()原创 2021-10-06 22:55:38 · 808 阅读 · 2 评论 -
这半年的目标:制作一个视频播放器
目标:暂定今年(2021)下半年,在Linux下完成一个视频播放器的制作,OS平台使用Ubuntu16.04_x64,音视频处理平台采用FFMPEG,GUI界面采用QT,开发进度和学习历程会通过博客来记录。由于现在已经进入企业工作了(目前处在软件开发岗),整体制作进度可能没办法像学校里一样花大笔投入,但是至少保证每周一天+的投入量。环境搭建:1、首先从FFMPEG官网:http://www.ffmpeg.org/download.html下载FFMPEG源码,我是直接下载了当天的每日编译,读者也可以根原创 2021-07-18 21:01:11 · 243 阅读 · 1 评论