_寒潭雁影
中科大IT向博士,熟悉MFC,C++,C等语言,参与过ffmpeg、机器视觉、并行计算、数据库等相关项目的研发和代码的编写http://blog.csdn.net/weixinhum为本人博客,上面记录了本人的一些技术总结
展开
-
300行代码实现FFMpeg+CUDA+OpenGL的硬解码+渲染全流程
为了达到上面所述的目标,本人尝试了非常多的操作。因为要跨平台(Windows+Linux),所以不能使用dx系列接口(如dxva2等是Windows独占的接口)的方案,这直接就堵死了最好实现的一个路径。而更加严重的问题在于只有dx系列的接口兼容了AMD和英伟达的显卡(毕竟Windows用户量摆在那里),其他的接口都是厂商独有的,如英伟达的CUDA。因此,如果要跨平台使用一套代码,基本上就只能认厂商了(这里说基本上,而没说完全,是因为Vulkan应该可以做到,只是本人暂时没时间去研究)。原创 2023-06-05 16:51:03 · 990 阅读 · 1 评论 -
使用ffmpeg+rtsp-simple-server实现RTSP的TCP推流
现在很多摄像头都带RTSP的码流推送功能以供用户拉取,该功能是通过在摄像头内部架设RTSP的服务器,并且将码流推送到该服务器实现的。用户通过url地址拉流,实际上就是去RTSP服务器要码流数据。在流媒体软件开发中,有时候我们需要不断断开和重连接码流以测试软件表现。如果使用实际的摄像头来操作则意味着很多时候要不断开关网络服务,实在不方便。因此,在本机搭建一个RTSP服务器并将本地视频推流到该服务器中以供流媒体软件拉取是个不错的主意。在之前"Windows环境vlc的配置与简单rtsp推流demo"这篇文章原创 2021-05-07 15:20:55 · 5390 阅读 · 1 评论 -
VS配置FFmpeg开发环境
在做视频处理的时候,通常需要对视频数据进行编解码,这时利用开源的FFmpeg视频音频处理方案是大多数程序员的选择,毕竟自己去进行编解码器的编写实在是太太太没效率了,而且大多数情况下还满满的都是写不出来。。。然决定用FFmpeg只是最开始的一步,因为后面如何去搭建这个环境是个比较麻烦的问题。通常在VS上搭建FFmpeg开发环境有两种方法,一是从FFmpeg的官网下载源码然后自己进行编译。其复原创 2014-07-11 18:18:34 · 14505 阅读 · 9 评论 -
利用FFmpeg将Jpeg图片转为任意视频容器格式
在一些嵌入式系统中,视频以jpeg图像格式传出来,而且数据量非常大。这种情况下如果要对jpeg图像进行解码并且重新编码成264之类的格式再放入视频容器中会消耗大量的CPU资源,若不是性能特别犀利的CPU是无法承受的,这个时候有一个折衷的办法,就是直接将jpeg连续保存起来(也就是保存成mjpeg视频格式),然后直接放入视频容器中。 这个方面的代码实现网上资料比较少,可以说几乎没有,基本都原创 2015-05-20 16:38:05 · 8356 阅读 · 11 评论 -
FFmpge x86与x64版本性能研究
由于之前一直用的x86架构进行编程,形成了惯性,一直没有注意到x84的性能跟x64相比会差多远。前阵子看了魅族的发布会说手机操作系统升级到64位后流畅性得到了巨大的提升,突然灵机一动,搞了些许尝试,一试才发现果然不是一个数量级的。 拿FFmpge解码为例,720P的H264视频在32位的ffmpeg库下解码并用Direct2D播放一秒大概57~58帧,而在64位的解码器下能解码播放123原创 2016-01-06 22:33:07 · 1407 阅读 · 0 评论 -
利用FFmpge进行视频压缩(从图像到H264视频流)
对于FFmpeg相信做视频或图像处理这一块的都不会陌生,在网上也能找到很多相关的代码,但由于版本不同等原因,往往找到的代码都是需要自行修改才可以用,为此本人希望能尽绵薄之力,将开发包和自行编写的代码都放出来,如果初学者想要可以直接运行的代码做参考的话,可以下载我放出的FFmpeg开发包进行配置(配置的教程地址如下:点击打开链接),然后参考我写的编解码代码来进行程序的开发。 下面贴...原创 2014-07-11 22:57:47 · 16146 阅读 · 10 评论 -
利用FFmpge进行视频解码(从H264视频流到图像)
同上面所写的两篇文章,本篇依然是介绍FFmpge的相关操作,前一篇讲的是视频压缩,本篇则相反的讲视频的解码。废话不多说,直接上代码吧。 同理于上篇,本篇先设计一个视频解码相关的类,定义如下:class Ffmpeg_Decoder{public: AVCodecParserContext *avParserContext; AVPacket avpkt; //数...原创 2014-07-13 19:29:10 · 9678 阅读 · 11 评论 -
FFmpeg 获取RTSP传过来的视频数据并保存成文件
废话不多说,直接上代码。 需要注意的是,FFmpeg的版本很多,最新版本可能有些函数已经换成别的了。如果无法自行更改代码,可以找我以前相关FFmpeg的文章,下载我x64版本的工程包,里面就有这个版本的FFmpeg。#ifndef INT64_C #define INT64_C(c) (c ## LL) #define UINT64_C(c) (c ## ULL) #endif extern原创 2017-08-24 00:06:41 · 23036 阅读 · 7 评论 -
Windows下Video_Codec_SDK的环境配置和简单的硬解码Demo
最近因为需求以及一直以来觉得CPU解码太傻X,研究了一波硬解码。通过连续三四天不间断的挖坑填坑,大抵总结了网上资料给出的三种操作:1. 用FFMPEG硬解码完从显存拷回内存,然后就没有然后了,存起来了事。优点:十分简单,FFMPEG本身就给出了例子,跑就行了。缺点:从显存拷贝回内存,大多数情况下不如直接用CPU解码,饶了一大圈费力不讨好。改进方向:研究下显存的处理操作,将显存的数据在显存中...原创 2019-07-09 16:40:08 · 8109 阅读 · 11 评论 -
Video_Codec_SDK硬件视频解码代码分析和MFC移植
上一篇文章主要介绍了如何配置环境,将Video_Codec_SDK运行起来,并跑了一个硬件视频解码的示例程序看了看效果,而具体这套操作比其操作好在哪并没有具体提及。本篇文章我们将进一步分析下这套代码,并指出几个可能应用方向的修改方法。首先看下整体代码,本人做了一点点修改和一些注释,基本上有FFMPEG解码经验的人应该能秒懂:#include <cuda.h>#include &...原创 2019-07-11 15:01:56 · 3583 阅读 · 8 评论