![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FFplay播放器分析
文章平均质量分 85
Loken2020
音视频工程师,《FFmpeg原理》作者
展开
-
FFplay视频滤镜分析
FFplay播放器的命令行是可以指定多个视频滤镜,然后按 w 键切换查看效果的,命令如下原创 2023-03-29 20:27:22 · 141 阅读 · 0 评论 -
FFplay视频滤镜分析
FFplay播放器的命令行是可以指定多个视频滤镜,然后按 w 键切换查看效果的,命令如下原创 2023-03-22 13:34:50 · 2492 阅读 · 0 评论 -
FFplay是如何解析命令行参数的
FFplay是如何解析命令行参数的原创 2023-03-22 13:35:20 · 318 阅读 · 0 评论 -
FFplay退出分析
FFplay退出逻辑分析原创 2023-03-22 13:31:17 · 863 阅读 · 0 评论 -
FFplay播放完毕分析
当FFplay播放完毕的时候,各个解复用线程,解码线程,播放线程在干什么。原创 2023-03-03 12:59:41 · 265 阅读 · 0 评论 -
FFplay逐帧播放分析
FFplay 播放器有一个比较有趣的功能,就是逐帧播放。因为平时视频文件的帧率是挺高的,一秒24帧,有些细节一瞬间就过去了,不太容易注意到。利用逐帧播放功能,你可以一帧一帧的观察视频画面,这在一些查处交通违规,案件排查的场景非常有用。原创 2023-03-03 12:58:06 · 8818 阅读 · 0 评论 -
FFplay暂停分析
暂停也是播放器非常常见的功能。对于 FFplay 播放器,可以通过 p 键 或者空格键 来切换暂停状态。原创 2023-03-03 12:56:35 · 459 阅读 · 0 评论 -
FFplay跳转时间点播放
播放器的最常用的功能之一 就是快进快退,快进快退的本质就是让视频文件跳转到另一个时间点来播放。原创 2023-02-14 10:47:01 · 7964 阅读 · 0 评论 -
FFplay外部时钟分析
FFplay外部时钟分析原创 2023-02-14 10:45:15 · 324 阅读 · 0 评论 -
FFplay音频同步分析
FFplay音频同步分析原创 2023-02-14 10:43:28 · 468 阅读 · 0 评论 -
FFplay视频同步分析
FFplay视频分析原创 2023-02-01 11:32:47 · 592 阅读 · 0 评论 -
音视频同步基础知识
音视频同步基础知识"原创 2023-02-01 11:31:31 · 11144 阅读 · 0 评论 -
video_refresh视频播放线程分析
video_refresh视频播放线程分析原创 2023-02-01 11:30:29 · 446 阅读 · 2 评论 -
video_thread视频解码线程分析
video_thread 线程主要是负责 解码 PacketQueue 队列里面的 AVPacket 的,解码出来 AVFrame,然后丢给入口滤镜,再从出口滤镜把 AVFrame 读出来,再插入 FrameQueue 队列。原创 2023-01-05 15:28:05 · 7885 阅读 · 0 评论 -
audio_decode_frame函数分析
audio_decode_frame() 函数的主要作用是从 FrameQueue 队列里面读取 AVFrame ,然后把 is->audio_buf 指向 AVFrame 的 data。如果 AVFrame 的 音频格式跟 is->audio_tgt 不一致,就会进行重采样,如果进行重采样, is->audio_buf 指针会执行重采样后的内存 audio_buf1,而不是 AVFrame::data。原创 2023-01-05 15:27:20 · 426 阅读 · 0 评论 -
sdl_audio_callback音频播放线程分析
sdl_audio_callback音频播放线程分析原创 2023-01-05 15:26:29 · 3177 阅读 · 0 评论 -
FFplay序列号分析
序列号 主要是给 快进快退 这个功能准备的。如果不能快进快退,那其实就不需要序列号。只要解复用线程不断读取 AVPacket 放进去 PacketQueue 队列,解码线程不断从 PacketQueue 取数据来解码放进去 FrameQueue,最后有播放线程来取 FrameQueue 的数据取播放就行。原创 2023-01-05 15:25:51 · 1635 阅读 · 1 评论 -
FrameQueue队列分析
FFplay 播放器有两种队列,PacketQueue 跟 FrameQueue。FrameQueue 的数据就是从 PacketQueue 里面解码出来的(会经过滤镜)。PakceQueue 是用 FifoBuffer 来实现环形队列的,而FrameQueue 是用数组来实现一个环形队列的,但是更复杂一些。原创 2023-01-05 15:23:06 · 1660 阅读 · 0 评论 -
decoder_decode_frame解码函数分析
decoder_decode_frame() 其实是一个通用的解码函数,可以解码 音频,视频,字幕的 AVPacket。不过本文主要侧重于分析音频流的解码,但其他的流也是类似的逻辑。原创 2023-01-05 15:21:55 · 1733 阅读 · 0 评论 -
audio_thread音频解码线程分析
audio_thread线程实际上就是音频解码线程,audio_thread线程主要是负责解码PacketQueue队列里面的AVPacket的,解码出来 AVFrame,然后丢给入口滤镜,再从出口滤镜把 AVFrame读出来,再插入FrameQueue队列原创 2023-01-05 15:19:11 · 1319 阅读 · 0 评论 -
audio_open函数分析
audio_open函数分析原创 2022-12-21 10:57:44 · 698 阅读 · 2 评论 -
FFplay音频滤镜分析
configure_audio_filters() 函数的作用主要是配置 音频流的 滤镜,因为 ffplay 为了代码的通用性,即便命令行参数不使用滤镜,AVFrame 也会过一遍 空滤镜做下样子。原创 2022-12-21 10:55:59 · 7775 阅读 · 0 评论 -
stream_component_open函数分析
stream_component_open() 函数主要作用是打开数据流对应的解码器,开启解码线程去解码。原创 2022-12-21 10:53:43 · 2492 阅读 · 0 评论 -
read_thread解复用线程分析
read_thread() 线程的主要作用从 MP4 里面读取 AVPacket,然后丢进去 PacketQueue 队列。所以需要先学习一下 strcut PacketQueue 跟 struct MyAVPacketList 数据结构原创 2022-12-12 18:34:22 · 4521 阅读 · 0 评论 -
stream_open函数分析
ffplay 的 stream_open 函数分析,以及基础的数据结构原创 2022-12-12 18:29:08 · 778 阅读 · 0 评论 -
main入口函数分析
在开始讲解之前,分享一些阅读 项目代码的经验。无论学习哪方面的知识,都是需要正反馈才能继续学下去。在学习开源项目的时候,如果不掌握一些比较好的方法,会比较难拿到正反馈,或者要坚持学习很久才能拿到正反馈。原创 2022-12-12 18:26:16 · 1829 阅读 · 0 评论 -
FFplay播放器分析
FFplay播放器分析原创 2022-12-12 18:23:29 · 371 阅读 · 0 评论