ffmpeg
猫瑾
作者转行回家养猪,可能不再更新。
展开
-
在VS中配置调用FFmpeg开发环境
首先要知道FFmpeg有三个版本:分别是static、shared、dev具体什么区别自行百度就行。要在VS中调用FFmpeg,那么我们需要FFmpeg的库资源,即需要shared和dev这两个资源。可以自行百度下载,或者拿我的资源。1、百度云资源:链接:https://pan.baidu.com/s/1jnCIrP3EB98UNcgQz3-fMA提取码:rwix复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V2的分享2、博客资源,初始积分已经设置为0了下载后可以原创 2020-11-11 16:44:59 · 1889 阅读 · 0 评论 -
ffmpeg 获取播放的时间来实现进度条
一般来说,进度条的实现都是用dts或者pts来做参考实现但是我现在用一种更加简单的方法去获取总时长和当前播放时间来做进度条。获取总时长的函数: if(avformat_open_input(&pFormatCtx, is->filename, NULL, NULL)!=0) //获取总时长 times = pFormatCtx->duration/1000000...原创 2019-08-09 15:14:01 · 7525 阅读 · 2 评论 -
ffmpeg QT实现播放器的进度条
如图,进度条是用qslide控件:用法:QSlider *playSlider = new QSlider;playSlider ->setRange(0,100); //设置进度条最小值和最大值(取值范围)playSlider ->setMinimum(0); //设置进度条最小值playSlider ->setMaximum(100); //设置进度条最大值pl...原创 2019-08-08 16:32:01 · 3793 阅读 · 4 评论 -
m3u8结构以及hls协议简单解析
HLS(Http Live Streaming): 用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。HLS的优势就是:可以自适应调整播放码流,即网络畅通时选择高码流,网络繁忙时选择低码流,二者可以随意自行切换,以保证视频流的流畅度。当然该方法需要服务器提供多码流视频数据了,还需在列表文件中注明,播放形式会根据用户实际情况来调整。ff...原创 2019-07-23 10:21:43 · 10120 阅读 · 0 评论 -
QT 将SDL嵌入到QT的窗口控件中
做了一个ffmpeg+SDL的播放器,现在移植到QT中,暂时又不想直接用QT+ffmpeg的方式。但是原来的SDL做播放器的话,每次运行就直接弹出独立的SDL播放窗口。所以就把SDL嵌入到QT的子窗口中,记录一下遇到的问题。百度了网上的方式,都是3年前的了,有点老,踩了不少坑,下面开始说明一下:一开始是这种写法,如下: if(SDL_Init(SDL_INIT_VIDEO...原创 2019-07-25 18:17:17 · 5709 阅读 · 3 评论 -
ffmpeg 获取视频的时长
简单写个程序获取视频的时长,以便做视频播放器的进度条。很简单,头文件我懒的敲了,直接复制别的,所以有些多余。代码如下:#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libavformat/avio.h>#include <libswresamp...原创 2019-07-24 17:31:22 · 5894 阅读 · 0 评论 -
基于ffmpeg的播放器播放URL出现: Server returned 403 Forbidden (access denied)
基于ffmpeg做了一个播放器,可以播放网络视频,例如,CCTV1的频道直播但是在播放一些URL地址的时候出现了这个问题:Server returned 403 Forbidden (access denied)被拒绝了访问,但是在使用VLC播放器的时候是能正常播放的。下面这个URL就是测出问题的,我做的播放器和ffplay都出现这个error。http://120.87.10.21:...原创 2019-07-17 18:13:47 · 11988 阅读 · 1 评论 -
ffmpeg函数分析:av_read_frame()
对于视频的编解码来说,要对数据进行解码,那么首先要获取视频帧的压缩数据。av_read_frame()的作用就是获取视频的数据。注:av_read_frame()获取视频的一帧,不存在半帧说法。但可以获取音频的若干帧。说明①:av_read_frame()函数是ffmpeg新型的用法,就用法之所以被抛弃,就是因为以前获取的数据可能不是完整的,而av_read_frame()保证了视频数据一帧...原创 2019-07-17 15:42:51 · 13008 阅读 · 0 评论 -
ffmpeg fork一个子进程利用hls的ts流切片来实现直播
hls的ts流切片相关看这个:https://blog.csdn.net/weixin_38890593/article/details/96965164下面看代码:int main(int argc, char *argv[]) {//int main(void) { SDL_Event event; VideoState *is; char str_...原创 2019-07-24 10:45:26 · 568 阅读 · 0 评论 -
ffmpeg必备知识点
未来方便学习,用别人的资料对ffmpeg做下整理,参考的资料在文末贴出。视频协议:视频播放器原理视音频技术主要包含以下几点:封装技术,视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术(即播放网络视频就是解析流媒体)。视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几...转载 2019-07-12 15:33:42 · 307 阅读 · 0 评论 -
(一)ffmpeg主要函数源码剖析:ffmpeg_parse_options()
先看ffmpeg的主函数入口int main(int argc, char **argv){ int i, ret; BenchmarkTimeStamps ti; init_dynload(); register_exit(ffmpeg_cleanup); setvbuf(stderr,NULL,_IONBF,0); /* win32 runti...原创 2019-07-18 17:39:59 · 1061 阅读 · 1 评论 -
Linux编译FFmpeg-4.1.3源码包缺少库
Linux系统为Ubuntu16.04在FFmpeg源码包中编译,执行下面命令报错,缺少各种库./configure --pkg-config-flags="--static" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --...原创 2019-07-05 15:59:19 · 1213 阅读 · 0 评论 -
ffmpeg的API函数变化记录
最近在搞ffmpeg的时候发现下面函数出错:tutor.o: In function \`our_get_buffer\':tutor.c:530: undefined reference to \`avcodec_default_get_buffer\'怀疑是ffmpeg的函数变了,放弃了这个,查了文档,果然是这样。Add avcodec_default_get_buffer2() a...原创 2019-07-10 17:51:41 · 4244 阅读 · 0 评论 -
Linux 基于ffplay的简易视频播放器(网络+本地)
新手刚开始学习ffmpeg。参考网上的ffmpeg资料和雷神的博客,简易做了个播放器,边学边做。暂时未做音频,所以播放时有沙沙声。视频的播放速度也有问题,需要再调整,后续再处理速度和音频的问题!放效果图:该播放器是基于ffmpeg+SDL,可播放本地视频和网络URL地址的视频,适合初学者学习。视频主要解码过程FFmpeg的视频解码过程主要有以下几个步骤:初始化所有组件(所有的文...原创 2019-07-09 18:05:30 · 3839 阅读 · 1 评论 -
Linux下 ffmpeg-4.1.3版本的安装以及简单的程序测试
准备工具也可以先安装ffmpeg,等到报错的时候再去安装报错的库。安装ffmpeg前还需要一些安装好一些工具:yasm libx264-dev libx265-dev libmp3lame libopus-dev libfdk-aac-dev cmake mercurial上面直接用sudo apt-get install 来获取例如:sudo apt-get install cmake...原创 2019-07-08 11:34:47 · 3160 阅读 · 0 评论 -
Ubuntu下安装SDL工具及简单的C代码测试
装SDL库1、安装SDL的库sudo apt-get install libsdl1.2-devsudo apt-get install libsdl-image1.2-devsudo apt-get install libsdl-mixer1.2-devsudo apt-get install libsdl-ttf2.0-devsudo apt-get install libsdl-...原创 2019-07-08 14:47:36 · 853 阅读 · 0 评论