FFMPEG
文章平均质量分 53
记录开发经验
M百问
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FFmpeg网络拉流阻塞问题与可靠超时处理方案
FFmpeg的网络拉流功能强大但易受网络环境影响。通过合理利用其中断回调机制,并结合单调时钟进行时间判断,可以有效地解决函数阻塞问题,并构建出健壮、可靠的流媒体应用。关键实践要点:• 优先使用中断回调:相比于协议特定的超时参数,中断回调提供更统一和可控的超时控制机制。• 依赖单调时钟:使用 av_gettime_relative() 来测量超时间隔,避免系统校时导致意外触发。• 设置合理的超时时间:根据网络环境和应用需求,为连接阶段和读取阶段设置不同的超时阈值。原创 2025-09-18 10:27:44 · 1280 阅读 · 0 评论 -
FFmpeg滤镜相关的重要结构体
功能:描述滤镜的类型、功能和操作接口重要成员// 滤镜名称(唯一标识)// 滤镜描述// 输入端口定义// 输出端口定义// 初始化函数// 反初始化函数// 格式协商函数// ...其他成员} AVFilter;// 自定义参数int param1;// ...其他私有数据// 处理帧数据// 传递给下一个滤镜},{ NULL }.outputs = NULL, // 动态分配。原创 2025-07-10 13:49:04 · 462 阅读 · 0 评论 -
Fmpeg解码流程中10个经典数据结构
【代码】Fmpeg解码流程中10个经典数据结构。原创 2025-07-04 00:44:54 · 320 阅读 · 0 评论 -
FFmpeg八大核心开发库
【代码】FFmpeg八大核心开发库。原创 2025-07-01 11:45:28 · 334 阅读 · 0 评论 -
使用FFmpeg将H.264码流封装为MP4
检查输入是否为标准H.264 Annex B格式(起始码。循环读取H.264数据包。初始化FFmpeg库。创建输入/输出上下文。原创 2025-07-01 09:56:07 · 880 阅读 · 0 评论 -
ffmpeg 视频编码流程及主要API
【代码】ffmpeg 视频编码流程及主要API。原创 2025-07-01 09:32:47 · 1071 阅读 · 0 评论 -
ffmpeg 视频解码流程及主要API
视频解码流程主要分为**解封装(Demuxing)解码(Decode)**两个阶段。原创 2025-07-01 09:25:12 · 641 阅读 · 0 评论 -
使用FFmpeg+SDL2读取本地摄像头并渲染
核心流程分为设备初始化、数据捕获、解码、格式转换和渲染五个阶段。原创 2025-07-01 09:02:10 · 856 阅读 · 0 评论 -
Cortex-A9解码H265遇到的程序崩溃问题
处理器采用Cortex-A9,从网络摄像机拉取RTSP视频流,编码格式为H265,在打开rtsp视频流时有小概率出现程序崩溃的问题。原创 2025-06-30 09:21:34 · 216 阅读 · 0 评论 -
mp4文件与dash流传输
DASH 不是一种文件格式,而是一种流媒体协议,它使得视频可以在不同带宽和网络条件下流式传输,保证平滑播放体验。参数的作用是调整 MP4 文件的内部结构,使其适合 DASH 流媒体的使用。这些 MP4 片段可以包括不同的编码格式、分辨率和比特率,以便客户端根据当前的网络状况来选择合适的片段进行播放。,每个片段是一个独立的 MP4 文件,通常每个片段的持续时间为 2-10 秒。,该文件描述了如何播放媒体片段,以及如何根据不同的带宽选择不同质量的流。DASH 协议的核心是通过将视频分割成多个小的。原创 2024-11-15 14:26:24 · 1251 阅读 · 0 评论 -
ffprobe查看媒体文件信息
v error:只输出错误信息,避免多余的调试信息。:显示文件格式的详细信息。:显示所有流(视频、音频、字幕等)的信息。:选择特定的视频流(第一个视频流)。:选择特定的音频流(第一个音频流)。:显示每一个数据包的信息。:查看文件的元数据标签(如艺术家、标题等)。:输出结果为 JSON 格式,便于机器解析。原创 2024-11-15 11:39:02 · 1589 阅读 · 0 评论 -
FFmpeg的基本结构
FFmpeg框架可以简单分为两层,上层是以ffmpeg、ffplay、ffprobe为代表的命令行工具;其底层支撑是一些基础库,包含AVFormat、AVCodec、AVFilter、AVDevices、AVUtils等模块库。原创 2024-11-14 11:13:12 · 910 阅读 · 0 评论 -
网络视频流解码显示后花屏问题的分析
rtp打包的ps视频流发送到客户端后显示花屏。原创 2024-09-07 13:01:06 · 1720 阅读 · 0 评论 -
ffmpeg封装格式的一些说明
moov对于MP4格式的解码和播放至重要,解码器必须获取moov的全部信息,才能在成功解析后获其中每一个码流包的位置和时间戳。当使用ffmpeg的默认参数出为MP4格式时,moov会在所有数据转封装完成后生成,然后加在文件的末尾。由于获取moov相对较为复杂,因此MP4格式流媒体播放等场景并不友好。为了解决该问题,在使用ffmpeg进行转封装操作时,可以在选项-ovflags中加入参数faststart。原创 2024-08-07 09:12:50 · 696 阅读 · 0 评论 -
调整视频的分辨率
main.cpp。原创 2024-07-23 18:09:32 · 755 阅读 · 1 评论 -
ffmpeg中的超时控制
打开输入文件或流。这个函数会阻塞,尤其是在网络流的情况下,可能会因为等待服务器响应而长时间阻塞。这个函数会尝试读取更多的数据来获得流的详细信息,如果数据源响应缓慢,也会阻塞。这个函数会读取下一帧的数据包,如果数据源响应缓慢或者网络连接不稳定,也会阻塞。在FFmpeg库中,很多函数没有直接的参数可以设置超时。: 打开文件或网络资源以进行读取或写入的函数。: 从输入缓冲区读取数据,这个函数也会阻塞。或 avformat_seek_file。用于在媒体流中进行跳转操作。用于关闭输入媒体文件或流。原创 2024-07-17 19:37:15 · 1310 阅读 · 0 评论 -
ffmpeg-滤镜-缩放-cpp
使用 FFmpeg 库对视频进行缩放和旋转处理。原创 2024-07-05 18:09:53 · 387 阅读 · 0 评论 -
ffmpeg滤镜创建过程
7、将滤镜的输入和输出与对应的滤镜上下文关联起来。2、创建滤镜的输入和输出。3、每个滤镜创建上下文。原创 2024-07-04 08:57:13 · 799 阅读 · 0 评论 -
ffmpeg滤镜-添加文字-cpp
错误,通常是由于 FFmpeg 未正确编译或缺少支持 drawtext 滤镜的库。在使用 FFmpeg 时,确保它是用 libfreetype 支持编译的。通过以下命令来检查 FFmpeg 是否支持。如果在编译 FFmpeg 时没有使用。时,如果遇到这个错误,说明。这通常是因为没有安装。原创 2024-07-03 18:30:24 · 1049 阅读 · 0 评论 -
ffmpeg滤镜-drawtext-命令行
使用 FFmpeg 在视频上添加文字可以通过drawtext滤镜来实现。这个滤镜允许你指定字体、大小、颜色、位置等。原创 2024-07-03 17:05:25 · 1280 阅读 · 0 评论 -
检测音视频文件的声压
将输出丢弃,只显示滤镜的结果。原创 2024-07-03 11:44:33 · 701 阅读 · 0 评论 -
从视频文件中提取YUV数据
【代码】从视频文件中提取YUV数据。原创 2024-07-02 18:32:59 · 568 阅读 · 0 评论 -
ffmpeg错误号码
使用ffmpeg的时候,如果有错误,会返回一个int型负数。比如AVERROR_EOF就是-541478725。有些时候会返回-11、-22等无法解析为字符串的错误号是什么原因?宏将错误码转换为负值,以便与 FFmpeg 的错误处理系统兼容。在大多数系统上定义为11,因此,从错误号解析为字符串方法如下。原创 2024-07-02 16:12:45 · 990 阅读 · 0 评论 -
ffmpeg编译时报错gcc is unable to create an executable file.
查看configure后发现只有--cpu选项,查看RK3568说明书,cpu是cortex-a55。增加选项--cpu=cortex-a53后,不再报错。查看错误信息ffbuild/config.log。缺少-mcpu=参数。原创 2024-06-14 11:31:21 · 377 阅读 · 0 评论 -
avcodec_send_packet函数阻塞
用ffmpeg4.1.4开发一个播放器,解码过程如下,在每个函数前设置标志,测试发现程序阻塞在avcodec_send_packet函数。从解码器接收解码后的帧。解码器内部有一个缓冲区,用于存储解码过程中间的数据。如果缓冲区已满(即没有足够的空间来存储新的数据包),2、在while循环中等待avcodec_receive_frame。,即使你不确定是否有帧可以接收。这有助于清理缓冲区。向解码器发送压缩数据包,而。就会阻塞,直到有足够的空间。原创 2024-07-02 15:46:15 · 734 阅读 · 0 评论
分享