小馋喵星人
这个作者很懒,什么都没留下…
展开
-
【FFmpeg解码实战】(7)从零实现FFmpeg4.3 + SDL2视频播放器 - Video_Player 主类实现
【FFmpeg解码实战】(7)从零实现FFmpeg4.3 + SDL2视频播放器 - Video_Player 主类实现一、class Video_Player 类实现1.1 class Video_Player 类定义1.2 struct video_player_t 核心结构体实现1.3 Video_Player() 构造方法1.4 ~Video_Player() 析构函数1.5 get_instance() 创建 / 获得类对象1.6 Open_Video() 打开、解码、播放 音 / 视频主函数1原创 2020-12-03 16:42:17 · 851 阅读 · 0 评论 -
【FFmpeg解码实战】(6)从零实现FFmpeg4.3 + SDL2视频播放器
【FFmpeg解码实战】(6)实现FFmpeg4.3 + SDL2视频播放器(建立工程)一、新建VS2019工程1.1 配置 include 头文件目录1.2 配置 lib 库目录 及 lib库名1.3 复制所需的DLL文件 到根目录1.4 配置输出的EXE文件名1.5 测试工程是否配置成功二、视频播放器代码实现2.1本系列文章列表:《【FFmpeg解码实战】(1)解码并分离视频文件中的音频流和视频流(C)》《【FFmpeg解码实战】(2)分离视频文件中的视频流每一张图片(进阶)(C)》《【FF原创 2020-12-02 11:21:09 · 799 阅读 · 1 评论 -
Native层打开 V4L2 video0摄像头 - V4L2_MEMORY_USERPTR - NV12格式 - 2plane
Native层打开 V4L2 video0摄像头 - V4L2_MEMORY_USERPTR - NV12格式 - 2plane1、配置摄像头输出 NV12格式数据2、获得NV12格式的Buffer size3、申请DMA Buffer4、下发 Buffer 地址到V4L25、循环获取数据分别测试拷贝数据到本地的时间6、释放Buffer本文代码和前面《 Native层打开 V4L2 video0摄像头-V4L2_MEMORY_USERPTR-YUYV格式-1plane》差不多,唯一不一样的就是将 YU原创 2020-11-14 10:59:22 · 1935 阅读 · 3 评论 -
Native层打开 V4L2 video0摄像头-V4L2_MEMORY_DMABUF-YUYV格式-1plane
Native层打开 V4L2 video0摄像头-V4L2_MEMORY_DMABUF-YUYV格式-1plane一、配置驱动准备DMA 类型Buffer二、应用层申请DMA Buffer三、申请DMA Buffer四、应用层下发Buffer 指针五、循环获取 Camera 数据六、释放Buffer 与 fd前面我们分析实现了 USERPTR 与 MMAP 两种方式的代码实例:《Native层打开 V4L2 video0摄像头-V4L2_MEMORY_USERPTR-YUYV格式-1plane》《原创 2020-11-14 10:01:12 · 4777 阅读 · 5 评论 -
Native层打开 V4L2 video0摄像头-V4L2_MEMORY_USERPTR-YUYV格式-1plane
Native层打开 V4L2 video0摄像头-V4L2_MEMORY_USERPTR-YUYV格式-1plane一、Android ION CMA分配连续物理内存二、获取摄像头数据代码实例2.1 初始化摄像头(打开节点,配置输出格式)2.2 配置驱动Stream Buffer2.3 申请Stream Buffer 内存2.4 申请 ION 物理连续内存 alloc_ion_dma_buff()2.5 下发 Buffer地址给到V4L22.6 SteamON 开始输出图片2.7 循环获取摄像头数据2.8原创 2020-11-11 18:50:32 · 2190 阅读 · 2 评论 -
Native层打开 V4L2 video0摄像头 - V4L2_MEMORY_MMAP 方式实现
Native层打开 V4L2 video0摄像头 - V4L2_MEMORY_MMAP 方式实现一、打开摄像头 video0 节点,查询摄像头属性二、配置摄像头输出格式三、配置V4L2底层申请Buffer,Native层来mmap映射 Buffer四、下发Stream on命令,开始吐数据五、循环获取摄像头数据V4L2_MEMORY_MMAP 方式是由V4L2 驱动层来实现申请连续buff,Native 层通过mmap 方式来映射读取数据。相关代码可参考高通默认代码:\vendor\qcom\prop原创 2020-11-11 18:42:07 · 2165 阅读 · 0 评论 -
【Android 视频硬件编码】在Native层实现MediaCodec H264 编码 Demon - 实现任意Size尺寸图片的编码
【Android 视频硬件编码】在Native层实现MediaCodec H264 编码 Demon - 实现任意Size尺寸图片的编码一、引入编码失败的问题二、失败的原因分析2.1 猜想一,可不可能单纯填02.2 猜想二,编码器对长与宽存存字节对齐(比如4字节对齐等)在前文《【Android 视频硬件编码】在Native层实现MediaCodec H264 编码 Demon》中,我们实现了如何在Native层中对一系列图片进行编码,编码时配置的参数由具体的编码器性能来决定的,因此各机器编码时使用参数可原创 2020-11-02 19:04:46 · 1115 阅读 · 0 评论 -
【Android 视频硬件编码】在Native层实现MediaCodec H264 编码 Demon
【Android 视频硬件编码】在Native层实现MediaCodec H264 编码实例一、完整代码二、Android.mk在前文《【Android 视频硬件编码】screenrecord.cpp 代码中编码流程分析》,我们学习分析了screenrecord 中视频编码相关的流程,本文我们参考它来实现一个 MediaCodec H264 编码实例。好,废话不多说,我们直接进入主题吧!一、完整代码流程比较简单,没啥好说,需要注意:具体的硬件设备支持的format 格式也不同,我调试的机器原创 2020-10-31 11:51:55 · 2928 阅读 · 15 评论 -
【Android 视频硬件编码】screenrecord.cpp 代码中编码流程分析
【安卓硬件编码学习】screenrecord.cpp 代码流程分析一、ScreenRecord.cpp1. Android.mk2. main() 主函数代码二、recordScreen(fileName) 录屏代码分析本文主要学习如何实现在 Native C++层实现硬件编,参考的是 \frameworks\av\cmds\screenrecord\screenrecord.cpp,我们主要关注的是编码相关,其他部分可以先忽略,为方便分析,我会把代码中一些不相干的先删了。好,接下来废话不多说,我们来原创 2020-10-29 11:27:03 · 2053 阅读 · 0 评论 -
【FFmpeg解码实战】(5)实现FFmpeg4.3 + SDL2视频播放器(添加独立线程和队列)(C++)
【FFmpeg解码实战】(5)实现FFmpeg4.3 + SDL2视频播放器(添加独立线程和队列)(C++)一、队列 & 线程 - 代码实现二、读取源数据paket 线程 - 代码实现三、音频解码线程 - 代码实现四、视频解码线程 - 代码实现五、音视频播放线程 - 代码实现六、主函数监测鼠标按键 - 代码实现七、完整代码在前文《【FFmpeg解码实战】(4)实现FFmpeg4.3 + SDL2视频播放器(音频+视频播放)(C++)》 中,我们实现了音视频播放的demo。在前文的基础上,本原创 2020-10-21 11:53:34 · 979 阅读 · 1 评论 -
【FFmpeg编码实战】(2)将YUV420P图片集编码成H.264视频文件(方法二)
【FFmpeg编码实战】(2)将YUV420P图片集编码成H.264视频文件(方法二)在前文《【FFmpeg编码实战】(1)将YUV420P图片集编码成H.264视频文件》中,我们实现了将一些YUV420P图片集编码成H.264视频。其方法是通过 AVFormatContext 这个已经封装好的接口来实现的,打开文件时使用的是 avio_open,写视频内容时通过的是av_interleaved_write_frame,这些都是已经封装的非常好的方法。但我们学习,不能局限于此,为学习更详细的原理,原创 2020-10-14 09:37:04 · 1764 阅读 · 0 评论 -
【FFmpeg编码实战】(1)将YUV420P图片集编码成H.264视频文件
【FFmpeg编码实战】(1)将YUV420P图片集编码成H264视频文件在前文《【FFmpeg编程实战】(2)分离视频文件中的视频流每一张图片(进阶)》中,我们实现了,将一个H264编码的视频文件,解码成一张张的YUV420P 图片。本文,我们来实现一下,将这些解码后的YUV420P图片,重新编码成一个新的H.264视频文件。YUV420P图片如下:好,开始Code吧^_^《ffmpeg将视频编码为H264格式》《ffmpeg视频编解码实例》《FFmpeg编解码处理3-视频编码》原创 2020-10-13 11:07:19 · 1522 阅读 · 0 评论 -
【FFmpeg解码实战】(4)实现FFmpeg4.3 + SDL2视频播放器(音频+视频播放)(C++)
【FFmpeg编程实战】(4)实现FFmpeg4.3 + SDL2视频播放器(音频+视频播放)(C++)本文在前面《【FFmpeg编程实战】(3)实现FFmpeg4.3 + SDL2视频播放器(只播放视频)(C++)》的基础上,增加了音频的播放,及音视频分文件保存的功能。运行结果如下:Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4': Metadata: major_brand : isom minor_version原创 2020-10-12 19:13:30 · 1510 阅读 · 5 评论 -
【FFmpeg解码实战】(3)实现FFmpeg4.3 + SDL2视频播放器(只播放视频)(C++)
【FFmpeg编程实战】(3)实现FFmpeg4.3 + SDL2视频播放器(C++)一、VS2019 环境搭建二、代码实现一、VS2019 环境搭建配置VS2019 工程时,注意平台分为X64 和 Win32,我这边配置的是所有平台,但实际上,库使用的是 X64 的库,所以,编译时需要编译为64位的环境。配置FFmepg 和 SDL2 的头文件配置LIB库的目录配置使用的lib库名复制所需要的DLL 文件到工程目录下配置完后建议先编译测试下,如果配置时写错文件,这时就会报错了,如原创 2020-10-10 09:37:10 · 1465 阅读 · 4 评论 -
【FFmpeg编程进阶】(19)muxing.c 示例,封装音视频代码流程学习
【FFmpeg编程进阶】(19)muxing.c 示例,封装音视频代码流程学习1. 运行结果2. 重写后的muxing.cpp 代码(带注释)ffmpeg 源代码中提供了一个muxing.c ,其中演示了如何 encode 和 muxing 音视频的流程,为方便学习,我把它的代码使用 VS2019 工程重新写了下。1. 运行结果编译运行 VS2019 工程后,生成 video/video.mp4 文件,播放命令为 ffplay video/video.mp4 ,其中的视频流和音频流是muxing.原创 2020-10-09 17:09:50 · 1126 阅读 · 0 评论 -
【FFmpeg解码实战】(1)解码并分离视频文件中的音频流和视频流(C)
【FFmpeg编程实战】(1)分离视频文件中的音频流和视频流一、代码实现二 、运行结果三 、调试过程中的问题1. 视频资源准备2. VC2019 控制台中文字乱码问题本文作为FFmpeg 编程实战道篇,我们先来实现一个解复用功能,也就是分离分离视频文件中的音频流和视频流,并且将视频流 和 音频 流分别保存成不同的的文件一、代码实现代码流程如下:打开文件,分配AVFormatContext 结构体上下文查找文件对应的流信息打印流信息视频解码器初始化4.1 获取视频对应的stream_in原创 2020-10-04 12:53:00 · 2004 阅读 · 5 评论 -
【FFmpeg解码实战】(2)分离视频文件中的视频流每一张图片(进阶)(C)
【FFmpeg编程实战】(2)分离视频文件中的视频流每一张图片(进阶)一、代码修改二、运行结果三、完整代码在前文《【FFmpeg编程实战】(1)分离视频文件中的音频流和视频流》中,我们实现了对视频的解复用功能,以MP4为例,解复用后为 H264视频流 和 AAC音频流。本文在前文的基础上,来实现将前面的代码修改为不保存H264文件,而是保存成一张一张的yuv420p图片。一、代码修改其实很简闲单,修改的地方也不多,如下:在保存 h264 video 视频流时,分开来,保存成 video/Vi原创 2020-10-03 23:28:26 · 810 阅读 · 3 评论 -
【FFmpeg编程进阶】(18)估算AVStream的时长 estimate_timings() 代码分析
【FFmpeg编程进阶】(18)估算AVStream的时长 estimate_timings 代码分析一、estimate_timings()1.1 estimate_timings_from_pts(ic, old_offset)1.2 fill_all_stream_timings(ic)1.3 estimate_timings_from_bit_rate(ic)PTS(Presentation timestamp)即显示时间戳,就是一副图片或音频帧显示或播放的时间。DTS(Decompressio原创 2020-09-30 18:00:44 · 1362 阅读 · 0 评论 -
【FFmpeg编程进阶】(17)解码packet数据 try_decode_frame() 代码分析
【FFmpeg编程进阶】(17)解码packet数据 try_decode_frame 代码分析一、try_decode_frame()二、解码一帧数据 avcodec_send_packet(avctx, &pkt)三、接收解码后的数据 avcodec_receive_frame(avctx, frame)一、try_decode_frame()判断是否已经打开 avcodec(条件为: AVCodecInternal 是否存在,found_decoder,codec_id)如果未初始化原创 2020-09-30 17:07:11 · 1012 阅读 · 0 评论 -
【FFmpeg编程进阶】(16)读取一帧压缩编码数据 read_frame_internal() 代码分析
【FFmpeg编程进阶】(16)读取一帧压缩编码数据 read_frame_internal 代码分析接着前文《【FFmpeg编程进阶】(八)avformat_find_stream_info() 函数代码分析 - 获取媒体信息》,本文链接:本文单独拉一章出来分析下读取一帧压缩编码数据的代码流程。# libavformat\utils.cstatic int read_frame_internal(AVFormatContext *s, AVPacket *pkt){ int ret原创 2020-09-30 10:57:51 · 1043 阅读 · 0 评论 -
【FFmpeg编程进阶】(15)FLV 编码器Codec初始化 ff_mpv_encode_init() 代码分析 -- 待更新
【FFmpeg编程进阶】(15)FLV 编码器Codec初始化 ff_mpv_encode_init 代码分析 一、ff_mpv_encode_init()在前面分析《【FFmpeg编程进阶】(11)avcodec_open2() 函数代码分析 - 打开Codec解码器》时,我们涉及到了Codec 编码器初始化,由于代码比较长,我们再分一章来分析。主要目的,还是以 FLV 编码器为例 ,来看下编码器初始化主要做了啥先记录下TODO LIST,后面再更新。# libavcodec\flvenc.c原创 2020-09-29 10:13:45 · 1001 阅读 · 0 评论 -
【FFmpeg编程进阶】(14)FLV 解码函数 ff_h263_decode_frame() 代码分析 - 待更新
【FFmpeg编程进阶】(13)FLV 解码函数 ff_h263_decode_frame代码分析一、ff_h263_decode_frame()在前面分析《【FFmpeg编程进阶】(11)avcodec_open2() 函数代码分析 - 打开Codec解码器》时,我们涉及到了Codec 解码函数,由于代码比较长,我们再分一章来分析。主要目的,还是以 FLV 解码器为例 ,来看下解码器解码时主要做了啥先记录下TODO LIST,后面再更新。# libavcodec\flvdec.cAVCodec原创 2020-09-29 10:06:35 · 658 阅读 · 0 评论 -
【FFmpeg编程进阶】(13)FLV 解码器初始化函数 ff_h263_decode_init() 代码分析 --- 待更新
【FFmpeg编程进阶】(13)ff_flv_decoder 初始化函数 ff_h263_decode_init 代码分析 --- 待更新一、ff_h263_decode_init()在前面分析《【FFmpeg编程进阶】(11)avcodec_open2() 函数代码分析 - 打开Codec解码器》时,我们涉及到了解码Codec init 初始化,由于代码比较长,我们再分一章来分析。主要目的,还是以 FLV 解码器为例 ,来看下解码器主要做了啥,不用太精细,了解大概做了啥事就好了,至于更精细的,我们原创 2020-09-29 09:57:12 · 559 阅读 · 0 评论 -
【FFmpeg编程进阶】(12)FLV 编码函数 ff_mpv_encode_picture() 代码分析 --- 待更新
【FFmpeg编程进阶】(11)FLV 编码函数 ff_mpv_encode_picture 代码分析 --- 待更新一、ff_mpv_encode_picture()本文接着:《【FFmpeg编程进阶】(11)avcodec_open2() 函数代码分析 - 打开Codec解码器》本文主要来分析下,编码的代码流程,以 FLV 为例,它的编码函数为 ff_mpv_encode_picture()# libavcodec\flvenc.cAVCodec ff_flv_encoder = {原创 2020-09-28 16:18:41 · 866 阅读 · 0 评论 -
【FFmpeg编程进阶】(11)avcodec_open2() 函数代码分析 - 打开Codec解码器
【FFmpeg编程进阶】(11)avcodec_open2 函数代码分析 - 打开Codec解码器# libavcodec\utils.cint attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options){ int ret = 0; int codec_init_ok = 0; AVDictionary *tmp = NULL;原创 2020-09-28 10:43:02 · 1537 阅读 · 0 评论 -
【FFmpeg编程进阶】(十)ID3V2格式信息解析,ff_id3v2_parse_apic() 函数代码分析
【FFmpeg编程进阶】(十)ID3V2格式解析,ff_id3v2_parse_apic函数代码分析本文的唯一一个问题是:s->nb_streams 当前stream 流的数量是从哪获取到的?s->nb_streams可以简单理解,就是当前有几种Stream,比如视频流、音频流、字幕,这样就算三种了,那如果只有视频和音频的话,就是两种了,那s->nb_streams=2,此时,对应的stream[0] 就是指视频,stream[1] 就是指音频,可以看出 s->nb_st原创 2020-09-27 10:30:51 · 3180 阅读 · 2 评论 -
【FFmpeg编程进阶】(九)read_packet / flv_read_packet() 函数代码分析
【FFmpeg编程进阶】(九)read_packet 函数代码分析不同的文件使用的是不同的解复用器,以FLV文件格式为例,它的read_packet 函数是 flv_read_packet().可以参考我之前写的文章:《【FFmpeg编程进阶】(六)avformat_open_input() 函数源代码分析 - 打开媒体文件》AVInputFormat ff_flv_demuxer = { .name = "flv", .long_name = NULL原创 2020-09-26 11:37:57 · 1781 阅读 · 0 评论 -
【FFmpeg编程进阶】(八)avformat_find_stream_info() 函数代码分析 - 获取媒体信息
【FFmpeg编程进阶】(九)avformat_find_stream_info函数源代码分析一、avformat_find_stream_info()avformat_find_stream_info() 函数主要是用于获取媒体信息,我们用ffplay 来看下有哪些媒体信息:如下:C:\Users\ciellee\Desktop>ffplay video.mp4ffplay version N-94563-g3aeb681f07 Copyright (c) 2003-2019 the F原创 2020-09-25 17:18:24 · 2481 阅读 · 2 评论 -
【FFmpeg编程进阶】(七)io_open / io_open_default() 函数代码分析 - 打开媒体文件
【FFmpeg编程进阶】(七)io_open / io_open_default 函数源代码分析本文重点分析 io_open() 方法,有关 avformat_open_input() 函数,可参考:《【FFmpeg编程进阶】(六)avformat_open_input() 函数源代码分析》io_open() 方法在初始化 AVFormatContext 时赋了默认值,函数为 io_open_default(),如下:# libavformat\utils.cint avformat_ope原创 2020-09-24 18:50:45 · 1549 阅读 · 0 评论 -
【FFmpeg编程进阶】(六)avformat_open_input() 函数源代码分析 - 打开媒体文件
【FFmpeg编程进阶】(六)avformat_open_input 函数源代码分析一、avformat_open_input()avformat_open_input() 函数主要用于打开音视频多媒体数据,且获得AVFormatContext 信息,其定义在 libavformat\avformat.h# libavformat\avformat.h/** * Open an input stream and read the header. The codecs are not opened原创 2020-09-24 15:49:40 · 2003 阅读 · 2 评论 -
【FFmpeg编程进阶】(五)ffplay.c 源码学习(3/3) 之 event_loop()代码流程
【FFmpeg编程进阶】(五)ffplay.c 源码学习(3/3) 之 event_loop代码流程2.4 event_loop()由文章篇幅过长,分三篇文章来学习ffplay.c 的源码,如下:《【FFmpeg编程进阶】(五)ffplay.c 源码学习(1/3) 之 main 函数代码流程》《【FFmpeg编程进阶】(五)ffplay.c 源码学习(2/3) 之 SDL线程函数 read_thread()代码流程》《【FFmpeg编程进阶】(五)ffplay.c 源码学习(3/3) 之 eve原创 2020-09-24 14:48:02 · 687 阅读 · 2 评论 -
【FFmpeg编程进阶】(五)ffplay.c 源码学习(2/3) 之 SDL线程函数 read_thread()代码流程 - 待更新
【FFmpeg编程进阶】(五)ffplay.c 源码学习(2/3) 之 SDL线程函数 read_thread 代码流程考虑文章篇幅的问题,分三篇文章来学习ffplay.c 的源码,如下:《【FFmpeg编程进阶】(五)ffplay.c 源码学习(1/3) 之 main 函数代码流程》《【FFmpeg编程进阶】(五)ffplay.c 源码学习(2/3) 之 SDL线程函数 read_thread 代码流程》《【FFmpeg编程进阶】(五)ffplay.c 源码学习(3/3) 之 event_loo原创 2020-09-23 18:00:36 · 836 阅读 · 0 评论 -
【FFmpeg编程进阶】(五)ffplay.c 源码学习(1/3) 之 main 函数代码流程
【FFmpeg编程进阶】(五)ffplay.c 源码学习一、FFmpeg 介绍1.1 FFmpeg的8个常用库1.2 FFmpeg常用的解码函数1.3 FFmpeg常用数据结构1.3.1 AVFormatContext 封装格式上下文结构体,保存了音视频文件封装格式相关信息1.3.2 AVPacket 压缩编码数据结构体1.3.3 AVCodecContext 编解码器上下文结构体,保存了音视频文件编解码相关信息1.3.4 AVframe 数据帧构体二、FFplay 代码分析2.1 main() 主函数原创 2020-09-23 17:51:24 · 1107 阅读 · 0 评论 -
【FFmpeg编程进阶】(四)编译FFmpeg
下载《msys2-x86_64-20200903.exe》安装教程见官网:《https://www.msys2.org/》参考:《vs2019编译ffmpeg 4.1.3》ciellee@sh-ciellee MSYS ~# pacman -S msys/gcc正在解析依赖关系...正在查找软件包冲突...软件包 (8) binutils-2.35-1 isl-0.22.1-1 mpc-1.1.0-1 msys2-runtime-devel-3.1.7-1原创 2020-09-22 19:02:46 · 905 阅读 · 0 评论 -
【FFmpeg编程进阶】(三)SDL 编程快速学习
【FFMPEG教程】(三)SDL 编程快速学习一、Event 事件1. SDL_Event 结构体2. 鼠标 & 按键 事件3. 鼠标移动事件二、Surface 相关1. SDL_Renderer2. 边界自动反弹的小游戏制作在前面《【FFMPEG教程】(二)SDL_image 2.0 显示JPG图片》,我们学习了如何加载其他类型的图片,今天我们来进一步的快速过一遍SDL 其他的函数使用方法。一、Event 事件1. SDL_Event 结构体\SDL2-2.0.12\include\S原创 2020-09-22 11:49:56 · 561 阅读 · 0 评论 -
【Photoshop_CC_2018】msvcr120.dll丢失及应用程序无法正常启动0xc000007b修复dll问题解决
今天好需要用ps,就在网上下载了 CC2018,安装好后,报了两个错。丢失msvcr120.dll于是就去网上下载了一个64位的msvcr120.dll。应用程序无法正常启动0xc000007b修复dll然后在网找了一大堆资料,有的说是少了dx9 或者 VC,然后又屁颠屁颠的去Microsoft 官网下载了它们的安装文件,装好后还是不行。后来参考了这位兄弟的文章,给了我启发。《正确解决:坑爹的0xc000007b——应用程序无法正常启动》那位兄弟说去office 2013里面找,原创 2020-09-21 23:34:22 · 5704 阅读 · 1 评论 -
【FFmpeg编程进阶】(二)SDL_image 2.0 显示JPG图片
【FFMPEG教程】(二)SDL显示JPG图片SDL默认只能显示BMP图片,如果是其他类型的图片,需要借助SDL_image 2.0 来实现,源代码:《SDL2_image-2.0.5.zip》头文件及lib库:《 SDL2_image-devel-2.0.5-VC.zip》《SDL2_image-devel-2.0.5-mingw.tar.gz 》如下为SDL2_image-devel-2.0.5-VC.zip 的内容,将其和前面的SDL2.0的头文件与库放在一起。从网上下载一张JPG原创 2020-09-21 17:58:12 · 1307 阅读 · 2 评论 -
【FFmpeg编程进阶】(一)VS2019 + SDL2.0 环境准备
SDL 学习:《SDL 入门教程》《100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)》《从零开始学习音视频编程技术(四) FFMPEG的使用》《[总结]FFMPEG视音频编解码零基础学习方法》FFMPEG 源码下载:《http://ffmpeg.org/download.html》SDL源码下载:《http://www.libsdl.org/download-2.0.php》SDL 库下载:《SDL2-devel-2.0.12-VC.zip》...原创 2020-09-21 15:55:39 · 1808 阅读 · 2 评论 -
流媒体协议介绍(RTP / RTCP / RTSP / RTMP/ MMS / HLS)
流媒体协议介绍(RTP / RTCP / RTSP / RTMP/ MMS / HLS)一、RTP (参考文档RFC3550 / RFC3551)二、RTCP三、SRTP & SRTCP(参考文档 RFC3711)四、RTSP(参考文档 RFC2326)五、RTSP 和RTP的关系六、SDP七、RTMP/RTMPS八、MMS九、HLS一、RTP (参考文档RFC3550 / RFC3551)Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传转载 2020-09-01 09:26:59 · 834 阅读 · 0 评论 -
TCP、UDP、RTP(RTCP)原理及其异同
TCP、UDP、RTP(RTCP)异同与区别一、OSI 及 TCP/IP 协议模型1.1 OSI七层模型1.2 TCP/IP五层模型的协议二、RTP协议分析2.1 RTP概述2.1.1 RTP是什么2.1.2 RTP的应用环境2.1.3 流媒体2.2 RTP详解2.2.1 RTP的协议层次2.2.1.1 传输的子层2.2.1.2 应用层的一部分2.2.2 RTP的封装2.2.3 RTCP的封装2.2.4 RTP的会话过程三、TCP协议分析3.1 TCP协议简介3.2 TCP报头3.3 TCP工作原理四、UD转载 2020-08-31 21:06:10 · 2537 阅读 · 0 评论