首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
ffplay专题
ffplay源码分析(二)结构体VideoState
在多媒体的世界里,播放器是离用户最近的一环,它将数字编码的音频和视频数据转化为生动的视听体验。ffplay 播放器作为一款强大而备受关注的工具,其背后隐藏着一系列精妙的结构体,它们协同工作,共同完成了从数据读取、解码、渲染到最终呈现的复杂流程。 以下是播放器的一个简单的流程, 当我们启动 ffplay 播放器,它首先会与数据源建立连接,无论是本地文件、网络流还是其他输入源。。紧接着,数据被源
阅读更多...
FFplay源码分析-总结
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 FFplay 已经分析完毕,是时候画一幅整体的函数流程图了。
阅读更多...
FFplay源码分析-退出处理
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 FFplay 退出处理分析,按键盘 Q 可以退出关闭播放器。
阅读更多...
FFplay源码分析-pause
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 ffplay 的大部分主要逻辑已经讲完了,本文主要讲解 ffp
阅读更多...
FFplay源码分析-音视频同步2
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 上一篇文章已经讲解完 音频播放线程函数 sdl_audio_c
阅读更多...
FFplay源码分析-video_thread
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 上一篇文章已经讲解完了 audio_thread() 音频解码
阅读更多...
FFplay源码分析-stream_component_open
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 上一篇文章已经讲解完了 stream_component_op
阅读更多...
FFplay源码分析-read_thread
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 如下图所示,本文主要讲解 read_thread() 函数的内
阅读更多...
FFplay源码分析-streams_open
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 如下图所示,本文主要讲解 streams_open() 函数的
阅读更多...
FFplay源码分析-main2
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 在 main() 里面调用 parse_options() 解
阅读更多...
FFplay源码分析-调试环境搭建
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 第一篇文章先讲解如何搭建 window 10 qt creator 环境,用来断点调试 ffplay.c 的代码。 请先阅读之前的文章,搭建好预备环境,因为 ffplay.c 的移植跟 ffmpeg.c 类似,所以直接在 《ffmpeg.c 工程移植》基础上讲解。 Qt 安装教程FF
阅读更多...
FFplay源码分析-avformat_open_input
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.4 源码为准,主要讲解 ffplay 的 RTMP 协议解析,播放。本文使用的命令如下: ffplay -i rtmp://192.168.0.122/live/livestream 前两篇文章 《FFplay源码分析-rtmp入口》 《FFplay源
阅读更多...
FFplay源码分析-rtmp入口
《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.4 源码为准。本文主要讲解 ffplay 的 RTMP 协议解析,播放。本文使用的命令如下: ffplay -i rtmp://192.168.0.122/live/livestream 先按照之前的博客的教程 配置好 window 10 qt cre
阅读更多...
ffmpeg-4.0.2版本中ffplay播放器在vs2013下的编译
相信很多想要学习播放器开发的小伙伴都知道ffplay,但是却不知道如何在vs2013下去编译,虽然网上已经有了一些教程,但是都不完整,或者ffmpeg的版本太老,所以就有了今天这篇文章。 好了,废话少说,直接上干货。 第一步下载ffmpeg源码,下载地址http://ffmpeg.org/download.html,具体界面如下: 第2步,下载ffmpeg的二进制版本,有些小伙伴可能会问
阅读更多...
【YUV格式数据】【ffplay】播放或者查看YUV格式图片或文件数据
背景 最近在调试hisi解码功能,需要把h264格式解码成yuv数据,调试的时候需要最后查看下出来的yuv格式数据是否正常,需要用到一些工具软件进行查看。然后就做个总结。 解决方案 方案1:使用ffplay命令播放YUV文件 使用ffplay命令播放图片数据 电脑上装了ffmpeg,用相关命令非常方便。ffplay播放yuv格式的图片数据: ffplay -pixel_format
阅读更多...
ffplay 使用文档介绍
ffplay ffplay 是一个简单的媒体播放器,它是 FFmpeg 项目的一部分。FFmpeg 是一个广泛使用的多媒体框架,能够解码、编码、转码、复用、解复用、流化、过滤和播放几乎所有类型的媒体文件。 ffplay 主要用于测试和调试,因为它提供了一个命令行界面,可以方便地查看媒体文件的详细信息,如视频帧、音频波形等。它支持多种视频和音频格式,并且可以实时显示解码过程中的统计信息。 使用
阅读更多...
2024-05-09 Ubuntu上面用ffmpeg把jpeg图像转成yuv、rgb格式文件,通过ffplay命令显示这些文件成图像
一、安装 FFmpeg: 如果你的Ubuntu系统中没有安装 FFmpeg,可以通过以下命令来安装: sudo apt updatesudo apt install ffmpeg 二、测试原图,cowboy_girl_1024X1280.jpeg,分辨率是1024X1280. 三、使用 ffmpeg -pix_fmts 命令查看ffmpeg支持的格式 ffmpeg -pi
阅读更多...
ffplay源码分析4-音视频同步
ffplay是FFmpeg工程自带的简单播放器,使用FFmpeg提供的解码器和SDL库进行视频播放。本文基于FFmpeg工程4.1版本进行分析,其中ffplay源码清单如下:https://github.com/FFmpeg/FFmpeg/blob/n4.1/fftools/ffplay.c 在尝试分析源码前,可先阅读如下参考文章作为铺垫: [1]. 雷霄骅,视音频编解码技术零基础学习方法 [2
阅读更多...
ffplay 外部时钟同步的原理
概述 ffplay有三种同步方式:1、音频作为主时钟;2、视频作为主时钟;3、外部时钟源作为主时钟。默认的同步方式为“音频作为主时钟”方式,具体代码分析可查阅:https://blog.csdn.net/lyy901135/article/details/95307111 音频作为主时钟时,视频pts向音频的pts看齐,若视频播放延迟,则需进行丢帧处理。视频作为主时钟时,音频需向视频的pts看齐
阅读更多...
ffplay支持mac/iOS硬解码实践
1. ffmpeg编译开启videotoolbox的支持。 ./configure --enable-videotoolbox --enable-hwaccels 2. stream_component_open方法中开启硬件解码器。 int FSPlay::stream_component_open(VideoState *is, int stream_index){//...codec
阅读更多...
ffplay.c数据结构分析
最近在做流媒体播放器的优化,参考了ffplay.c的代码,主要对存储和流程上做下解剖。 数据存储 15M的QUEUE #define MAX_QUEUE_SIZE (15 * 1024 * 1024) typedef struct MyAVPacketList { AVPacket pkt; struct MyAVPacketList *nex
阅读更多...
FFmpeg常用结构体、关键函数、ffplay.c分析
一、常用结构体: 1、AVFormatContext结构体: AVFormatContext是一个贯穿全局的数据结构,很多函数都要用它作为参数。FFmpeg代码中对这个数据结构的注释是format I/O context,此结构包含了一个视频流的格式内容。其中存有AVIputFormat(或AVOutputFormat,但是同一时间AVFormatContext
阅读更多...
ubuntu22.04下编译ffmpeg和ffplay
Ubuntu22.04 下编译安装 ffmpeg 和 ffplay 一、下载源码包 1.1 官方下载链接:Download FFmpeg 可以手动下载,也可以命令行下载: wget http://www.ffmpeg.org/releases/ffmpeg-7.0.tar.xz 1.2 下载完解压 tar -xvf ffmpeg-7.0.tar.xz 二、安装依赖库 官方有
阅读更多...
FFmpeg: 简易ijkplayer播放器实现--05ijkplayer–连接UI界面和ffplay.c
文章目录 ijkplayer时序图消息循环--回调函数实现播放器播放时状态转换播放停止 ijkmediaPlay成员变量成员函数 ijkplayer时序图 stream_open: frame_queue_init packet_queue_init init_clock 创建read_thread线程 创建video_refresh_thread线程 消息循环–回调函
阅读更多...
MacOS快速安装FFmpeg、ffprobe、ffplay
文章目录 一、工具简介二、mac 安装ffprobe、FFmpeg等相关工具2.1 方法一:使用Homebrew安装FFmpeg2.2 从官网下载FFmpeg安装包,源码安装2.3 macOS 无法验证开发者时安装 一、工具简介 这些工具都是与多媒体处理和流媒体相关的开源工具,它们都属于 FFmpeg 多媒体框架。 FFmpeg 是一个用于处理多媒体内容(音频、视频、图像等
阅读更多...
ffmpeg/ffplay指令
ffplay 1、音频 (1)、播放PCM文件: ffplay -ar 8000 -ac 1 -f s16le input.pcm -ar 8000 设置采样率为8000 Hz。 -ac 1 设置声道数为1(单声道)。 -f s16le 指定音频格式为16位小端有符号整数(PCM) (2)、播放G.711 a-law文件: ffplay -ar 8000 -ac 1 -
阅读更多...