摘要:1 OpenCV cv::Mat与FFmpeg AVFrame相互转换 最近在处理OpenCV采集摄像头图片然后使用ffmpeg编码为h264裸流,之后再将h264裸流转换为OpenCV cv::Mat进行显示的问题,在这个过程中,如何将OpenCV的cv::Mat转化为FFmpeg AVFrame
阅读全文
随笔分类 - ffmpeg、ffplay
摘要:#include <iostream> using namespace std; extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h
阅读全文
摘要:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/ioctl.h> #include <string.h> #include
阅读全文
摘要:int img_savejpeg(AVFrame *pFrame, char *out_filename) {//视频流保存为jpeg int width = pFrame->width;int height = pFrame->height;AVCodecContext *pCodeCtx = N
阅读全文
摘要:讲解一下将获取到视频数据,进行rgb转码,并且进行相应的缩放操作 // 存放解码过后的数据 unsigned char *decode_data; int decode_size = 0; /** * 解码AVFrame中的yuv420数据并且转换为rgba数据 * * @param frame 需
阅读全文
摘要:说明 记录下个人在开发中使用到的FFmpeg常用功能,避免相同功能代码的重复编写,使用时直接复制提升效率。由于音视频处理的场景众多,无法编写完全通用的方法接口,可能需根据实际场景进行一定的修改,本文章中的代码也将持续更新优化。 代码 这里提供ffmpegheader.h,ffmpegheader.c
阅读全文
摘要:讲解一下将获取到视频数据,进行rgb转码,并且进行相应的缩放操作 // 存放解码过后的数据 unsigned char *decode_data; int decode_size = 0; /** * 解码AVFrame中的yuv420数据并且转换为rgba数据 * * @param frame 需
阅读全文
摘要:关于FFmpeg释放 AVFormatContext*解码上下文的一些问题 FFmpeg的一些常用函数用途 结构体 释放解码上下文 FFmpeg的一些常用函数用途 av_register_all() 注册所有组件。 avformat_open_input() 打开输入视频文件。 avformat_f
阅读全文
摘要:先看一下我调试时,发现程序崩溃的代码位置 //这是我的程序释放流上下文时的操作 if(m_pAvFormatContext) { //释放视频解码器上下文 if(m_iVideoStreamIndex >= 0) avcodec_free_context(&m_pVideoDecodeContext
阅读全文
摘要:简单记录一下最近使用ffmpeg播放RTSP做的一点参数优化。 先做如下定义: AVDictionary* options = NULL; 1.画质优化 原生的ffmpeg参数在对1920x1080的RTSP流进行播放时,花屏现象很严重,根据网上查的资料,可以通过增大“buffer_size”参数来
阅读全文
摘要:网上很多文章,说到avformat_open_input阻塞,就设置一下 av_dict_set(&avdic, "stimeout ", "300000", 0); ffmpeg源码rtsp.c有这样一段定义 { "timeout", "set maximum timeout (in second
阅读全文
摘要:ffmpeg的avformat_open_input()和av_read_frame默认是阻塞的 * 用户可以通过设置“ic->flags |= AVFMT_FLAG_NONBLOCK;”设置成非阻塞(通常是不推荐的); * 或者是设置超时时间; * 或者是设置interrupt_callback定
阅读全文
摘要:索引地址:系列教程索引地址 上一篇:FFmpeg5开发入门教程02:开发组件介绍 新建一个Qt纯C/C++项目。按照FFmpeg5开发入门教程00:准备添加头文件和配置文件。 在main()中添加: 1 2 3 unsigned codecVer = avcodec_version(); print
阅读全文
摘要:本系列将记录FFmpeg开发过程中一系列相关操作、技术总结、项目经验等等,主要是: 成体系的资料难找,大部分教程都是从别处抄来的,东一块西一块 记忆力不够,有些操作过段时间就忘记了,所以要记录,这也是我写博客建网站的原因 以线性索引的方式记录开发流程,方便技术总结及架构整理 最重要的是指明方向,我永
阅读全文
摘要:索引地址:系列教程索引地址 FFmpeg开发需要完整(不完整也行)的C/C++知识。 软件配置: 我的操作系统是Manjaro Linux,所有的软件直接从Manjaro软件仓库中安装,保持更新。 Makefile 如果是纯C/C++开发的话,使用Makefile或者CMake编译。 模板Makef
阅读全文
摘要://其实ffmpeg从4.0开始不用stimeout,用的listen_timeout等待网络超时,不然会一直超时下去。 AVDictionary* options = nullptr; //实时播放使用udp,减小带宽并防止断线 av_dict_set(&options, "rtsp_transp
阅读全文
摘要:通过ffmpeg 读取摄像头数据, 当设备移除后, 读取数据不阻塞设置: infmtCtx->flags |= AVFMT_FLAG_NONBLOCK; // 加上既可. if (avformat_open_input(&infmtCtx, dshow_name, fmt, &options) !=
阅读全文
摘要:ffmpeg拉取RTSP流 正常操作不会有问题 但是如果途中, 把RTSP的流断了, 发现 会卡死 在avformat_find_stream_info函数中, 把这个函数注释掉的话就会卡死在av_read_frame中 ,大概需要30m才会返回 网上搜了下 无论是 设置超时方法 还是 回调函数都不
阅读全文
摘要:参考:http://www.mamicode.com/info-detail-561129.html FFmpeg长时间无响应的解决方法 需要解决的问题 1、FFmpeg去连接的时候相机不在线导致avformat_open_input等函数一直死等,造成程序卡死 2、av_read_frame的过程
阅读全文
摘要:本文介绍下如何使用ffmpeg将大量图片拼接成一个视频,并介绍其中部分参数的含义。 使用ffmpeg将图片拼接成视频前,需要将图片文件名做下预处理,文件名中必须有数字将其次序标记出来,这里我直接使用数字将图片重命名了,如下: 直接使用命令ffmpeg -f image2 -i %d.jpeg out
阅读全文