FFMpeg
文章平均质量分 57
QMCY_jason
这个作者很懒,什么都没留下…
展开
-
Linux 平台 RTSP server项目开发总结
测试例子中使用了FFMPEG进行拉RTSP流测试 所以需要引入ffmpeg库。Demo版本限制了只支持两个通道 每个通道只能连接一个客户端。so库和测试demo可以点击这里下载。FULL版本 没有这个限制。可以点击这里下载全部文件。原创 2023-02-23 14:27:28 · 1987 阅读 · 0 评论 -
ffmpeg av_read_frame 结束线程时 挂掉的问题
因为 ffmpeg都是之前的代码没有问题 搞了大概有一天 后来想想可能是ffmpeg版本的问题。然后发现 程序退出 或者按ctrl+c的时候 ffmpeg拉流的这个线程总是挂掉的问题 如下图。就重新编译了 ffmpeg 发现解决了这个问题 编译的是静态库 需要注意 静态库的顺序问题。最近在写自己的rtsp 服务器 程序 测试的时候用ffmpeg拉流 作为数据源测试。gdb调试打印堆栈 发现是死在sleep哪里 莫名奇妙的问题。不然会包一堆 找不到函数的问题 如下图。原创 2023-02-07 15:41:24 · 323 阅读 · 1 评论 -
QT ubuntu下 多画面视频监控播放器rtsp播放器
由于是在虚拟机里面跑的 4画面的话cpu已经达到了 60-70% 左右 并且画面会丢帧,有时候会出现花屏,可能是由于再虚拟机里面跑的缘故。窗口resize的时候由于是采用了保持视频比例的方式 所以 画面之间会出现黑框。可能得 开启ffmpeg硬件加速 ,同时渲染的时候用Qopengl的方式。这次实现了多画面播放 目前调试测试的是4画面播放。采用的是ffmpeg软解 QImage渲染方式。play的时候 :原来就一个现在是多个。继前一篇文章只有一个播放画面。渲染的时候调整对应的坐标。定义的部分都变成数组。原创 2022-09-05 15:16:09 · 1911 阅读 · 1 评论 -
用QT做一个rtsp / rtmp实时流的播放器 ffmpeg
QT利用ffmpeg软解码 做一个gui的播放器原创 2022-09-02 17:40:49 · 3614 阅读 · 0 评论 -
瑞芯微RK1126平台 用FFmpeg 将H264 H265视频流保存为MP4文件
之前尝试ffmpeg保存MP4文件没有成功 今天周末没事 尝试了下 解决这个问题了。主要是打开文件设置encoder和 发送数据时候 pts的设置。这里是硬编码的 测试临时这么些 可以。封装packet发送的地方。最终需要根据码流的结构做调整。录制完成后 需要关闭文件。.........原创 2022-08-14 16:32:20 · 2456 阅读 · 1 评论 -
瑞芯微rk1126 编译mp4v2记录 rk1126移植 ffmpeg X264
从github上 下载完mp4v2之后 新建一个build文件夹。项目需求需要录像存储为mp4文件 并且要支持H264 H265。我们之前在海思平台上用的是mp4v2 想着直接拿过来用。执行脚本 然后make 正在编译中 还不知道会不会出错。如果找不到编译器需要将编译器路径加到path。刚开始直接这么写的话:会提示找不到编译器。这些生成了make文件没有报错。然后新建个脚本build.sh。失败了 暂时不知道咋办。没办法只能用ffmpeg。............原创 2022-08-11 16:03:32 · 1383 阅读 · 0 评论 -
Android 使用FFmpeg拉取RTSP流 用RTMP推流到RTMP服务器
之前写了 如何在Android中使用ffmpeg 以及如何使用ffmpeg拉取RTSP流业务场景大概是这样 拉取RTSP流之后 解码 送给AI分析 分析完之后 在进行绘制结果 然后编码 编码完之后 进行RTMP推流 。AI 解码 是别的同时负责的 我只需要把编码结果 使用RTMP推送出去即可FFmpeg本身是支持RTMP直接推流的 但是由于之前的项目一直都是使用lib_srsrtmp那个库的 比较成熟 ,所以就还是使用这个库先看下目录结构:srs_librtmp.h 和srs_librt原创 2022-04-26 17:16:33 · 7329 阅读 · 15 评论 -
ffmpeg filtergraph同时添加缩放和osd滤镜
刚开始 只需要缩放 直接用scale就可以后来想缩放的同时添加osd 也就是drawtext 发现会提示 找不到drawtext 如下图后来百度了一下发现 默认drawtext这个功能没有开启需要开启 --enable-libfreetype --enable-postproc 重新编译ffmpeg而开启freetype需要编译freetype2那就把freetype2下下来之后 直接./configure make make install然后再编译ffmpeg就可以了编译原创 2022-04-21 11:41:30 · 1915 阅读 · 0 评论 -
Android 引入FFmpeg 读取RTSP流 解封装获取H264原始数据
之前 写了Android中怎么引入FFMmpeg的例子 。本编文章将会写一个简单的demo实现ffmpeg拉去rtsp流并在界面中打印前五个字节实际效果下图:看下目录结构:很简单 应用进去之后有一个主界面MainActivity 主界面有一个按钮点击一下进入一个新的界面会显示解封装的h264数据的包的大小 和前5个字节MainActivity内容如下:sdfsdfpackage com.qmcy.demux;import androidx.appcomp..原创 2022-04-15 12:57:02 · 6944 阅读 · 3 评论 -
Android studio中集成ffmpeg 实测 从0开始
ffmpeg在音视频领域用的很多 之前都是基于linux windows 以及嵌入式linux等平台还没有在andorid平台上试过,正好最近新买了台电脑 不用担心性能是 硬盘空间不足的问题我个人非常不喜欢andorid studio这个 不管咋弄 都要装一大堆东西 ,稍微哪里版本不对 就又给你 下一大堆乱七八糟的东西。网速快还好 我们公司网速最大400k 对于动不动以G为单位的下载量 非常不喜欢 ,不像windows 或者linux 要什么 下下来就可以 。东西比较明确android 真的要下原创 2022-04-11 15:17:24 · 4340 阅读 · 0 评论 -
算能 SOPHON SC5+ 比特大陆 编解码卡 对接记录 环境搭建
4.6号接到这个工作 公司新来了一张硬件卡 sophon和对方有一个群。用来解决对接时候遇到的问题,主要就是搭建环境4.6号 先去官网下载文档 sdk 驱动等等插上硬件卡到服务器之后输入 lspci |grep 1684 显示如下 我们这是一张卡 包含3个芯片然后去官网 下载sdkOfficial Release SDK (sophon.cn)如下图 目前最新的是2.7 (公司网速只有300多K 这个文件下载三个多小时 )如果做AI的话官方推荐 下载那...原创 2022-04-08 14:14:33 · 1462 阅读 · 1 评论 -
ffmpeg 解码出来的YUV数据写文件
if(0)//(got_frame) { int size = frame->height * frame->width * 3 / 2; char* buf = new char[size]; memset(buf, 0, size); int height = frame->height; int width = frame->width; ...原创 2022-04-07 18:42:18 · 1851 阅读 · 0 评论 -
C++ 11 利用std::queue创建安全队列 等待队列
头文件:#include <mutex>#include <queue>#include <functional>#include <future>#include <thread>#include <utility>#include <vector>#include <condition_variable>class SafeQueue{private: std::queue原创 2022-03-19 16:27:53 · 4500 阅读 · 0 评论 -
Linux 平台下 makefile例子 so库 头文件引用等等 以及如何编译成so的例子
1.编译成可执行文件:CC := g++CC=g++CFLAGS:= -std=c++11 -gCFLAGS += -I/usr/local/neuware/includeCFLAGS += -I/home/QMCY/ffmpeg/includeCFLAGS += -I/home/QMCY/ffmpeg/libevent/includeLIBPATH := -L/usr/local/neuware//lib64LIBPATH += -L/home/QMCY/ffmpeg/libL原创 2022-03-15 19:53:54 · 4364 阅读 · 0 评论 -
ffmpeg 编解码 码率设置问题 CBR 、VBR
之前都是利用硬件进行视频流的编解码最近 在利用ffmpeg 编解码在CPU上进行软解软编码之前别的硬件平台设置码率和vbr cbr的时候 提供了接口直接设置一下就可以但是ffmpeg这里 并没有直接提供这样的接口网上搜了很多 比如下面这个: av_opt_set(encoder->av_encode_ctx->priv_data, "preset", "superfast", 0); //av_opt_set(encoder->av_encode_ctx->.原创 2022-02-22 20:35:40 · 4870 阅读 · 3 评论 -
ubuntu下编译 带libx264的 ffmpeg版本 以及 运行找不到lixx264的问题
之前编译的ffmpeg都是不带libx264版本的现在要加上这个 支持ffmpeg 软编码h264在编译ffmpeg之前首先要编译libx264下载x264 解压缩新建一个build.sh 配置如下默认需要至少nasm 2.13版本 ubunt直接apt-get install 的nasm版本不够所以先关闭这个asm的选项 后期再自己 重新编译nasm./build.sh make make install之后 就生成了对应的库和头文件然后去ffmpeg目录下原创 2022-02-18 13:00:01 · 2682 阅读 · 0 评论 -
FFMPEG 编解码失败 non-existing PPS 0 referenced
最近在尝试用ffmpeg进行编解码 大部分的rtsp拉流正常 编解码正常但是有的rtsp不能解码 提示如下 :后来把把packet数据打印出来发现是没有sps pps信息 导致 ffmpeg不能正常解码程序里面 经过测试 把 拉流时候的AVCodecContext 保存下来 即g_avc_cxt然后解码的时候使用avc_cxt = g_avc_cxt; 可以正常解码但是如果直接 给extradata 赋值 发现 (程序中的if(0)里面的流程)不能解码 还是提...原创 2022-02-15 17:47:26 · 14031 阅读 · 7 评论 -
FFMPEG 编码解码独立功能 替代硬件板卡模块记录
之前公司用的编解码用的是硬件模块 有寒武纪 海康 还有华为的等等,程序调用的是统一的接口 ,因为不用的硬件厂商的API不一样,所以需要做一层抽象封装,这样程序调用的时候可以不用关注到底是哪个硬件。然后有一个需求 不用硬件板卡 直接用FFMPEG 借助CPU来进行编解码。差不多一周时间实现了记录下 支持WINDOWS 也支持 LINUX:哦对了 其实是有两个模块 ,一个是FFMPEG 拉RTSP的流另一个是FFMPEG 编解码 两个独立 可以单独调用 也可以两个一起用。先看下文件结构.原创 2022-02-15 11:58:52 · 734 阅读 · 0 评论 -
windows 编译libx264 ffmpeg H264编码
之前用FFmpeg的情形一般是 FFMpeg 拉RTSP流 解封装,然后将读出来的packet数据交给硬件去做解码编码,现在出现了一个新的轻装要求支持FFMeg软解。即利用FFMpeg来解码 编码,然后FFMpeg默认的解码器是不包含H264 H265的,需要先下载libX264 编译出来库 ,然后编译FFMpeg的时候 大概lib264的开关 这里记录下首先下载lib264lib264官网下载下来之后 放到msys2的目录下通过vs 的prompt打开msys2 export一下 各位原创 2022-01-27 11:48:24 · 3307 阅读 · 0 评论 -
windows10 下 VS + msys2 编译 FFmpeg 记录
之前都是一直都是在linux下做ffmpeg开发,编译各种东西很方便最近领导安排了一个项目需要把之前linux平台的项目弄到windows平台下 对应的各种依赖库就都需要重新编译,之前为了给RTMP添加H265支持的时候 在windows下变异了一个ffplay.exe。windows下可以直接运行没问题,但是现在是要做开发 需要lib库然后去看了之前编译的库还是linux下面的.a文件 windows下面没办法用,然后网上搜了下大多数说是去ffmpeg官网下载,但是 不知道从什么时候开始 ff原创 2022-01-25 13:03:24 · 2318 阅读 · 0 评论 -
海思3531平台 NVR 的项目总结 视频拉流 转码 推流....
从8月份开始到现在 ,从0开始写这个项目 早就准备写个项目总结,无奈,一直拖拖拉拉的 ,知道最近 正好 最后二期需求 也完成的差不多了 ,抽空记录下来 。首先介绍些硬件平台,海思HI3531DV200 硬件功能还是比较强悍的 据芯片手册上可以支持到8路4K的视频解码编码(记不太清楚了可能有误...不重要 )。我们需求4路就可以 所以绰绰有余。前期项目的需求是4路RTSP输入,每路送入VDEC之后通过VPSS VENC 可以编码成4路不同的分辨率(只能比原视频小 不支持放大输出)所以最大一共可以...原创 2021-12-24 16:23:38 · 2683 阅读 · 8 评论 -
windows下支持H265的rtmp ffplay播放器 ffmpeg的编译
前几天在项目中添加了rtmp对H265的支持,需要推流端 服务器端 以及播放器三个方面的处理。功能已经实现 ,感兴趣的可以 去我的上一篇文章看下。 之前是在的播放器是在Ubuntu下面编译的。考虑到测试的很多都没有安装Ubunt的系统。所以今天考虑编译一个windows下面的ffplay版本。百度下 基本流程是需要安装mingw64 msys yasm。至于怎么安装mingw64 msys 可以百度下 网上有很多介绍 这些我之前已经安装好了 。今天主要做的工作如下...原创 2021-12-14 16:13:10 · 1943 阅读 · 12 评论 -
RTMP 推送H265的实现(推流端、服务器、播放端)ffmpeg 播放H265
众所周知的原因原生的RTMP只支持H264 并不支持H265的传输,之前的项目基于海思3531DV200平台的多路输入 多路输出 基于FFMpeg 拉RTSP的流 然后通过海思硬件解码然后在编码成较小的分辨率 通过RTMP推流到服务器端 项目已经基本结束。 然后领导 要求要实现RTMP H265的实现。从上周五2021.12.03 接到这个任务,到今天12.10正好一星期 已经基本上实现。中间穿插了一些其他的杂事。下面来说说这个过程吧 。之前测试的都是3531拉流推流 到Nginx ...原创 2021-12-10 12:00:25 · 11808 阅读 · 9 评论 -
ffmpeg 读取RTSP流 av_read_frame 阻塞 卡死 的问题
ffmpeg拉取RTSP流 正常操作不会有问题 但是如果途中,把RTSP的流断了, 发现 会卡死 在avformat_find_stream_info函数中,把这个函数注释掉的话就会卡死在av_read_frame中 ,大概需要30m才会返回网上搜了下 无论是 设置超时方法 还是 回调函数都不管用,不知道为什么。...原创 2021-09-14 14:50:48 · 5932 阅读 · 3 评论 -
Ubuntu 下QT 创建FFMpeg SDL 开发环境遇到的问题 以及SDL_Init初始化失败返回-1
周六在家没什么事,就来公司加班。最近正好在做音视频的项目,避免不了要和FFMpeg打些交道。之前没怎么接用过FFMpeg,之前就是简单的用FFmpeg拉了RTSP流,截个图 缩放什么的 更深入的功能没有做过。想借助这个时间好好学习下FFMpeg。本来想在windows下做的,需要下载visual studio .网上看了下 VS太大了 真的太大了 动不动10几个G 公司的网速下载 看了下 不到500K 放弃了 。正好项目开发是在ubuntu下的 有VMware的ubuntu环境。 我自己都不知道什么原创 2021-09-04 18:49:20 · 1133 阅读 · 0 评论