信必诺
但愿绝望和无奈远走高飞..
展开
-
JetsonNano —— 3、在Nano板卡编译可硬件加速FFmpeg,测试FFmpeg调用nvmpi编解码器加速
在Nano板卡编译可硬件加速FFmpeg,测试ffmpeg调用nvmpi编解码器加速原创 2024-05-13 15:38:27 · 223 阅读 · 0 评论 -
FFmpeg —— 视频帧保存为RAW格式(附上源码)
FFmpeg —— 视频帧保存为RAW格式原创 2023-07-17 20:15:45 · 644 阅读 · 0 评论 -
FFmpeg —— Windows下进行编译配置(硬件加速编解码)
Windows下进行编译配置(硬件加速编解码)原创 2022-11-11 17:34:32 · 708 阅读 · 0 评论 -
FFmpeg —— 编码错误【Application provided invalid, non monotonically increasing dts to muxer in stream 0】
ffmpeg:Application provided invalid, non monotonically increasing dts to muxer in stream 0原创 2022-10-25 15:31:24 · 1380 阅读 · 0 评论 -
FFmpeg —— 为视频添加文字水印(完美解决中文乱码,无需编译)
为视频添加文字水印(完美解决中文乱码,无需编译)原创 2022-09-15 16:30:47 · 2809 阅读 · 0 评论 -
FFmpeg —— 点播流程技术总结(公网、局域网)
作者认为点播也是一种音视频系列的技术,并目前没有其他音视频相关专栏,先放到这里,后续相关内容多了会另开一个专栏存放。原创 2022-08-11 12:10:15 · 1386 阅读 · 0 评论 -
FFmpeg —— 编码/录制麦克风声音并保存为mp3文件(附源码)
录制麦克风声音(附源码)原创 2022-08-01 20:36:24 · 799 阅读 · 0 评论 -
FFmpeg —— 录制windows系统声音(附源码)
录制windows系统声音(附源码)原创 2022-08-01 19:57:40 · 1141 阅读 · 0 评论 -
FFmpeg —— 通过修改yuv,将视频转为黑白并输出(附源码)
通过修改yuv,将视频转为黑白并输出。原创 2022-08-01 12:05:13 · 1368 阅读 · 0 评论 -
FFmpeg —— 将mp4转为gif输出(附源码)
将mp4转为gif输出(附源码)原创 2022-07-29 18:19:30 · 737 阅读 · 0 评论 -
FFmpeg —— 录制Windows屏幕与麦克风(音视频同步),生成Mp4文件(附源码)
录制Windows桌面与麦克风,音视频同步(附源码)原创 2022-07-29 15:43:57 · 792 阅读 · 1 评论 -
FFmpeg —— 裁剪视频(含音视频),不需编解码。生成新的mp4文件(附源码)
裁剪视频(含音视频),不需编解码(附完整源码)原创 2022-07-29 15:25:20 · 785 阅读 · 0 评论 -
树莓派 —— 编译FFmpeg(硬编解加速)
树莓派4b下编译FFmpeg原创 2022-06-01 10:04:14 · 909 阅读 · 1 评论 -
EasyDarwin —— windows搭建rtsp服务,使用FFmpeg进行rtsp推拉流
开源流媒体服务器 EasyDarwin是由国内开源流媒体团队开发和维护的一款开源流媒体平台框架,从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目,更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台,更快、更简单地实现最新的移动互联网(安卓、IOS、微信)流媒体直播与点播的需求,尤其是安防行业与互联网行业的衔接。 EasyDarwin最新版本由Golang开发跟维护,老版本由C++开发,已经停止维护,以后只维护新版本。EasyD原创 2022-05-27 15:36:57 · 1227 阅读 · 0 评论 -
FFmpeg —— 运动矢量检测与对比绘制(附源码)
效果 通过ffmpeg解码后检测视频内的运动矢量结果,然后通过opencv绘制线条,之后通过sdl渲染播放。 源码#include <iostream>#include <opencv2/opencv.hpp>extern "C"{#include <libavutil/motion_vector.h>#include原创 2022-05-26 16:42:59 · 475 阅读 · 0 评论 -
FFmpeg —— 提取并修改颜色通道,模拟滤镜效果。(附源代码)
效果 说明 将rtsp或mp4文件视频流经过FFmpeg解码后的YUV数据转化成RGB32数据,提取其中的R(红色)通道,并在界面中的小窗显示。这种方式效率很高。 tips: 大家可以构建一个界面程序,来实时修改不同的rgb通道分量数值,从而实时开到不同分量带来的不同滤镜效果。 源码Qt方式:/******************************************************/...img_convert_ctx = sws_getContex原创 2022-05-20 18:00:59 · 1020 阅读 · 0 评论 -
FFmpeg —— 推流rtsp/rtmp实时加入sei自定义信息,附添加发送与接收解析代码(附源代码)
完整源码支持rtsp、rtmp推流加入sei。原创 2022-05-17 21:26:41 · 3000 阅读 · 0 评论 -
FFmpeg —— 将若干jpg图片转为avi视频(附源代码)
效果 原理 我们实现了ffmpeg的将若干jpg格式图片转为视频的指令代码。 ffmpeg指令为:ffmpeg -i test.mp4 -r 10 -f image2 %05d.jpg #include <stdio.h>#include <stdlib.h>#include <io.h>#incl原创 2022-04-30 16:15:48 · 3626 阅读 · 1 评论 -
FFmpeg —— 查看NVIDIA显卡对硬件加速的支持、算力、下载各版本cuda工具
起因 起初了解学习掌握ffmpeg的编解码,以为只是学会了相关API的使用就可以了,但现实却不是这样的。视频、音频、字幕等都是需要仔细的学习了解,更是对一个行业的涉足。 在对ffmpeg熟悉后,了解到硬件加速对解码或编码的影响,业内人士对编码方式划分出了"软解码"、“硬解码”、“软编码”、"硬编码"。那么"软"操作是指使用在cpu的基础上;而"硬"操作是指在gpu也就是显卡上的基础上进行的计算。 "软"编解码是使用cpu来运算,所以兼容性非常好,但这样一来会占用大量的cpu操作原创 2022-04-24 11:04:46 · 2868 阅读 · 0 评论 -
FFmpeg —— Linux下使用ffmpeg硬件cuda解码mp4文件,并加入简单cv处理,sdl渲染窗口(附源码)
效果 准备工作 安装nvidia驱动、安装cuda、编译ffmpeg(硬件编解码)、编译sdl2、编译opencv。 上述需要读者自行完成,本人已编写上述部分过程,仅供参考。 FFmpeg —— Linux下进行配置(硬件加速编解码) SDL2 —— Ubuntu下编译sdl2 代码 基于Qt Creator原创 2022-04-20 18:18:57 · 1399 阅读 · 0 评论 -
FFmpeg —— Linux下进行编译配置(硬件加速编解码)
前提 这里首先需要大家在自己的Linux系统上安装了nvidia显卡驱动、cuda。 查看nvidia是否安装成功:nvidia-smi 查看cuda是否安装成功: 简介 FFMPEG官网 “一个完整的、跨平台的解决方案,可以记录、转换和传输音频和视频” 以Linux为例介绍FFmpeg安装流程: 所需安装包: yasm-1.3.0.tar.gz原创 2022-04-19 20:10:09 · 2088 阅读 · 0 评论 -
Android Studio —— 引用FFmpeg库
关于编译FFmpeg 本文不介绍FFmpeg编译安卓的库,但在文末提供编译好的安卓FFmpeg库。 在Android Studio 2020.3.1中配置FFmpeg库 1、创建Android Studio的C++工程 如图,选择C++工程,选择C++11即可。 2、将编译好的FFmpeg文件拷贝工程 3、在CMakeLists.txt文件中配置 CMakeLists.txt文件中引用了FFmpeg头文件、库文件原创 2022-03-19 19:00:46 · 3579 阅读 · 0 评论 -
FFmpeg —— 编译obs源码(解决编译后不能捕获摄像头问题)
效果 obs编译步骤 1、下载源码 方案一:git下载源码/*git下载步骤: 安装git后。创建文件夹,在该文件夹内右键选择"Git Bash Here"。 在git命令行内根据需要执行下面任意指令。下载的文件将保存git当前目录下。提示: 附加模块,例如obs源码本身不含捕获摄像头模块。*// 使用git下载obs最新源码。(不含附加模块)git clone https://github.com/jp9000/obs-studio.git原创 2022-02-24 17:55:54 · 915 阅读 · 0 评论 -
FFmpeg —— 代码方式将mp4文件转为avi无损文件(附源码)
效果 代码#include <iostream>extern "C"{#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libavutil/avutil.h>#include <libswresample/swresample.h>#include <libavutil/opt.h>}int main(){原创 2022-02-08 10:43:10 · 2217 阅读 · 0 评论 -
FFmpeg —— 对mp4视频按时间剪切,生成新的mp4(附源码)
效果 代码 char iPath[] = "../mp4.mp4"; char oPath[] = "../out.mp4"; int64_t startMes = 30; int64_t endMes = startMes+60; /***************输入*******************/ AVFormatContext *iFormatContext = nullptr; if(0 != avf原创 2022-02-07 23:26:43 · 2912 阅读 · 0 评论 -
FFmpeg —— ffplay源码 - 制作桌面动态壁纸
简介 最近需要再对音视频同步的ffmpeg代码复盘,于是下载并编译了鼎鼎大名的多功能视频播放器 - ffplay。在欣赏之余,发现其渲染代码基于我很熟悉的SDL,那么结合它的特性,让动态壁纸变成了可能并且有了音频功能。 这里基于ffplay.c的源码进行修改,音视频解码、同步、渲染、播音频等功能ffplay已具备。我这里仅修改了SDL渲染目的、增加嗅探句柄的功能。 效果 好了,话不多说。这里奉上程序效果。原创 2022-01-08 11:59:58 · 894 阅读 · 0 评论 -
FFmpeg —— ffplay命令参数集合
播放时控制输入播放 播放本地文件 ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4 ffplay buweishui.mp3 播放网络流 ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc 强制解码器 mpeg4 解码器: ffplay -vcodec mpeg4 test.原创 2022-01-08 11:21:03 · 519 阅读 · 0 评论 -
FFmpeg —— 帧率、帧数、时常等记录(持续更新)
说明 随手记录: 总时长、帧率、总帧数、视音频索引 代码/******************************************************************/// 总时长qDebug() << QSTR("媒体总时长(秒):") << VFormatContext->duration / AV_TIME_BASE;// 帧率AVStream *avStream = VFor原创 2021-12-21 16:42:07 · 1830 阅读 · 0 评论 -
FFmpeg —— 媒体或流选项(AVDictionary)
说明 在我们使用FFmpeg做些推拉流操作时,可能需要对打开流或媒体文件时加入配置,这里我们做一些小结,后续持续更新。 流AVDictionary *Dictionary = nullptr;av_dict_set(&avDictionary, "buffer_size", "1024000", 0); // 缓冲大小av_dict_set(&avDictionary, "max_delay", "500000", 0); // 最原创 2021-12-21 11:30:49 · 795 阅读 · 0 评论 -
FFmpeg —— 记录ffmpeg7.0版本前出现的 “被声明为已否决” - 集合
说明 这里暂且记录本人在FFmpeg开发过程中遇到的“被声明为已否决”的一部分集合。有可能记录不全,但后面若是碰到类似情况,会继续更新的。 另外,为什么会出现这种情况呢?那么应该是FFmpeg随着版本更新迭代,出现了同样功能且更好的接口,但为了向下兼容,在该版本同样保留了旧接口。 本文记录出现的问题,并附上对应解决的代码。 集合 avpicture_fill :AVFrame数据填充旧版本: int avpicture_fill(AVPicture *pict原创 2021-12-17 12:01:18 · 624 阅读 · 0 评论 -
FFmpeg —— ffmpeg代码方式将.mp4文件提取保存为.h264文件(附完整源码)
说明 我们使用了类似转封装的办法进行了保存h264文件,这里呢,起始将文件的信息也写入进去了。 代码#include <iostream>extern "C"{#include "libavformat/avformat.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"#include "libavdevice/avdevice.h"}int main()原创 2021-12-16 14:33:28 · 2120 阅读 · 0 评论 -
FFmpeg —— EasyDarwin搭建rtsp服务(推拉流测试)
EasyDarwin - 国内开源流媒体服务器 EasyDarwin国内开源流媒体团队维护和迭代的一整套开源流媒体视频平台框架,Golang开发,从2012年12月创建并发展至今,包含有单点服务的开源流媒体服务器,和扩展后的流媒体云平台架构的开源框架,开辟了诸多的优质开源项目,能更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台,更快、更简单地实现最新的移动互联网(安卓、iOS、H5、微信)流媒体直播与点播的需求,尤其是安防行业与互联网行业的衔接。 EasyDarwin开源项原创 2021-12-07 22:02:11 · 806 阅读 · 0 评论 -
FFmpeg —— 解决avformat_find_stream_info时间过长问题
问题 当在做一些音频推流工作时,在打开环境上下文后需要查找格式上下文信息(avformat_find_stream_info),但执行该函数的时间过于长了(约5~10秒),可能让人觉得很烦哦。那么我们今天来解决这个问题。 avformat_find_stream_info对于网络串流来说是需要花费时间进行探测一些信息的。所以可能时间较长。 解决 AVFotmatContext对象用probesize、max_analyze_duration两个参数,可以对其进行设置达到原创 2021-12-04 23:57:25 · 2202 阅读 · 2 评论 -
SDL —— SDL窗口嵌入QWidget中,显示FFmpeg解码后OpenCv处理的视频(附源码)
说明 在Vs2017中创建Qt项目,在项目中加入FFmpeg、SDL、OpenCv等相关开发库。实现了由FFmpeg打开、解码mp4文件,OpenCv在解码视频帧左上角绘制红色矩形框,将SDL的窗口嵌入到QWidget中。并将OpcnCv处理的帧放到SDL中进行GPU加速渲染显示视频。 具体效果如下: 效果图 可选择视频进行打开、关闭,拖拽QWidget尺寸 视频尺寸同样进行改变。效果如下: 源码 Global.h#ifndef Global_原创 2021-12-03 14:35:52 · 2803 阅读 · 0 评论 -
SDL —— SDL窗口嵌入QWidget中,显示FFmpeg解码视频(附源码)
在Vs2017中创建Qt项目,在项目中加入FFmpeg、SDL等相关开发库。实现了由FFmpeg打开、解码mp4文件,将SDL的窗口嵌入到QWidget中。并将FFmpeg解码帧放到SDL中进行GPU加速渲染显示视频。原创 2021-12-02 18:21:33 · 793 阅读 · 0 评论 -
SDL —— FFmpeg解码本地视频在SDL渲染显示(附源码)
说明 在Vs2017中创建C++的空项目,在项目中加入FFmpeg、SDL等相关开发库。实现了由FFmpeg打开、解码mp4文件,将解码帧放到SDL中进行GPU加速渲染显示视频。 具体效果如下: 效果图 由于CSDN上传gif大小限制,故将解码线程没有加入睡眠所以视频播放很快,以满足上传效果gif。 源码// FFmpegextern "C"{#include "libavformat/avformat.h"#include "libswscal原创 2021-12-02 16:21:43 · 937 阅读 · 0 评论 -
FFmpeg —— 由pts控制视频播放速率(Qt计时器)
时间概念 小时是一个时间单位。小时不是时间的国际单位制基本单位(时间的国际单位制基本单位是秒),而是与国际单位制基本单位相协调的辅助时间单位。 分又称作分钟,是时间的量度单位。分的英语是minute,原意是“微小”的意思,也表示min。刻=15分钟、字=5分钟(闽南广东地区用法)。 秒是国际单位制中时间的基本单位,符号是s。有时也会借用英文缩写标示为sec.。 毫秒(millisecond)是一种较为微小的时间单位,是一秒的千分之一(0.001秒),简称ms。典型照相原创 2021-11-20 16:18:10 · 729 阅读 · 0 评论 -
FFmpeg —— ffmpeg代码方式对Windows桌面录屏,将保存为.yuv文件(附代码)
YUV420 YUV,是一种颜色编码方法。常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。YUV是编译true-color颜色空间(color space)的种类,Y’UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。 Y′U原创 2021-10-15 14:21:21 · 813 阅读 · 0 评论 -
FFmpeg —— 缩放AVFrame尺寸
AVFrame AVframe介绍 相关对象 像素格式 AVPixelFormat 编解码上下文 AVCodecContext 尺寸格式上下文 SwsContext 视频图片 AVPicture 音视频帧 AVFrame 相关函数 创建图像帧 av_frame_alloc 创建图片原创 2021-10-13 15:29:26 · 409 阅读 · 0 评论 -
FFmpeg —— ffmpeg代码方式对视频帧保存本地图片.jpg文件(附完整源码)
JPG JPEG(Joint Photographic Experts Group)是JPEG标准的产物,该标准由国际标准化组织(ISO)制订,是面向连续色调静止图像的一种压缩标准。 JPEG格式是最常用的图像文件格式,后缀名为.jpg或.jpeg。 JPEG( Joint Photographic Experts Group)即联合图像专家组,是用于连续色调静态图像压缩的一种标准,文件后缀名为.jpg或.jpeg,是最常用的图像文件格式。其主要是采用预测编码(DPCM)、离散余弦变换(原创 2021-10-13 15:14:52 · 1243 阅读 · 0 评论