首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
ffmpeg 加速编码
2024-09-05
FFmpeg再学习 -- 硬件加速编解码
为了搞硬件加速编解码,用了一周时间来看 CUDA,接下来开始加以总结. 一.什么是 CUDA (1)首先需要了解一下,什么是 CUDA. 参看:百度百科 -- CUDA 参看:CUDA基础介绍 参看:cuda入门 参看:CUDA知识普及 参看:CUDA学习笔记 CUDA (Compute Unified Device Architecture,统一计算设备架构),是显卡厂商 NVIDIA 在2007年推出的并行计算平台和编程模型.它利用图形处理器 (GPU) 能力,实现计算性能的显著提高.CUD
ffmpeg音频编码
在弄音频采集时,需要设置缓存的大小,如果只是简单的采集和直接播放PCM数据,缓存的大小一般不影响播放和保存. 但是,如果需要使用FFMpeg音频编码,这时,音频缓存的大小必须设置av_samples_get_buffer_size函数返回的大小.以下是几点注意的 1. m_pFrame = av_frame_alloc();m_pFrame->format = ffSampleFormat;m_pFrame->nb_samples = nSampleRate;//帧的大小 2. m_nBuff
ffmpeg h264编码 extradata 为空
ffmpeg h264编码的例子前面的文章已经介绍,本来主要讲述影响AVCodecContext extradata是否为 空的配置项.如果要求open编码器以后AVCodecContext extradata存有 SPS,PPS 信息需要加上 EncoderContext->flags |= AV_CODEC_FLAG_GLOBAL_HEADER .跟踪源码你会发现这个标志在 libx264.c中被用到.如下图所示:
Ffmpeg AAC 编码错误 Input contains (near) NaN/+-Inf
Ffmpeg AAC编码 如果传入参Frame的Sample Format 为 AV_SAMPLE_FMT_S16,会出现 错误提示 Input contains (near) NaN/+-Inf,需要将Frame的Sample Format 设置为AV_SAMPLE_FMT_FLTP 小小错误,有时会折腾人,希望后来者少走弯路. 如需交流可加QQ群766718184 或者QQ3501870
ffmpeg,X264编码结果I帧QP比P帧还大
enc_ctx->profile =FF_PROFILE_H264_MAIN ; enc_ctx->time_base.den = 24; enc_ctx->time_base.num = 1; enc_ctx->gop_size = 8; /* emit one intra frame every twelve frames at most */ enc_ctx->pix_fmt = AV_PIX_FMT_YUV420P; enc_ctx->max_b_frames
使用ffmpeg视频编码过程中踩的一个坑
今天说说使用ffmpeg在写视频编码程序中踩的一个坑,这个坑让我花了好多时间,回头想想,非常多时候一旦思维定势真的挺难突破的.以下是不对的编码结果: 使用ffmpeg做视频编码过程中,首先要新建数据帧,并为数据帧分配对应内存,以便于保存图像数据,为数据帧分配内存须要用到av_image_alloc()这个函数,该函数将依据传入的图像宽.高.图像格式.数据对齐基数等
ffmpeg nvenc编码
花时间研究了一些ffmpeg的nvenc,本来想我已经有了cuvid,然后又搞出来了nvenc,应该可以做个全套的英伟达的转码了,没想到ffmpeg官网下载的动态库没有cuvid,windows上编译cuvid又老是出错,忧了个伤. 1.nvenc编码 h264_nvenc是很容易调出来的,把编码器ffmpeg源码自带的例子的编码器换成h264_nvenc就行了.可是hevc_nvenc就花了我好多时间,感觉调试技术还是差了好多. #include "stdafx.h" /* * Vi
【视频开发】【CUDA开发】ffmpeg nvenc编码
花时间研究了一些ffmpeg的nvenc,本来想我已经有了cuvid,然后又搞出来了nvenc,应该可以做个全套的英伟达的转码了,没想到ffmpeg官网下载的动态库没有cuvid,windows上编译cuvid又老是出错,忧了个伤. 1.nvenc编码 h264_nvenc是很容易调出来的,把编码器ffmpeg源码自带的例子的编码器换成h264_nvenc就行了.可是hevc_nvenc就花了我好多时间,感觉调试技术还是差了好多. #include "stdafx.h" /* * Vi
基于ffmpeg不同编码方式转码后的psnr对比
一.测试说明: 源文件:1080psrc.mp4 时长:900秒 源文件信息:Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 2960 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default) 编解码方式:CPU软解 二.硬件环境 CPU:Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz MemT
JavaCV FFmpeg H264编码
上次成功通过FFmpeg采集摄像头的YUV数据,这次针对上一次的程序进行了改造,使用H264编码采集后的数据. (传送门) JavaCV FFmpeg采集摄像头YUV数据 采集摄像头数据是一个解码过程,而将采集后的数据进行H264编码则是编码过程,如图: 从上图可以看出,编码过程,数据流是从AVFrame流向AVPacket,而解码过程正好相反,数据流是从AVPacket流向AVFrame. javacpp-ffmpeg依赖: <dependency> <groupId>org.b
JavaCV FFmpeg AAC编码
上次成功通过FFmpeg采集麦克风的PCM数据,这次针对上一次的程序进行了改造,使用AAC编码采集后的数据. (传送门) JavaCV FFmpeg采集麦克风PCM音频数据 采集麦克风数据是一个解码过程,而将采集后的数据进行AAC编码则是编码过程,如图: 从上图可以看出,编码过程,数据流是从AVFrame流向AVPacket,而解码过程正好相反,数据流是从AVPacket流向AVFrame. javacpp-ffmpeg依赖: <dependency> <groupId>org.b
ffmpeg实时编码解码部分代码
程序分为编码端和解码端,两端通过tcp socket通信,编码端一边编码一边将编码后的数据发送给解码端.解码端一边接收数据一边将解码得到的帧显示出来. 代码中的编码端编码的是实时屏幕截图. 代码调用了Qt SDK. #ifndef MAPTHREAD_H #define MAPTHREAD_H #include <QThread> #include <QTcpSocket> #include <QTimer> #include <QColor> #incl
ffmpeg参数编码大全
ffmpeg version N-49044-g89afa63 Copyright (c) 2000-2013 the FFmpeg developers built on Jan 19 2013 20:36:06 with gcc 4.7.2 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --en libavutil 5
加速编码的 JavaScript 库和工具
JavaScript库是 一个提前写好的JavaScript文件库,它可以很容易的开发基于JavaScript的应用,特别是AJAX和一些其它的以web为中心的技术.运用JavaScript最基本的方式是嵌入以写好的JavaScript函数,或是在HTML页面中包含进来.它是同过文档对象模型(DOM)和页面进行交互的. 在这篇文章中我精心挑选了 15个新颖的JavaScript库和工具,它们可以清理你应用中的相关问题以及让你的网站具有竞争力.我希望你在开发任务中能轻松的发现和应用下面的JavaS
【视频开发】【CUDA开发】FFMPEG硬件加速-nvidia方案
1.目标 <1>显卡性能参数: <2>方案可行性: 2.平台信息 2.1.查看当前显卡信息 命令: lspci |grep VGA 信息: 01:00.0 VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 645 OEM] (rev a1) 解析: GK106,是一个由英伟达公司制造的适配器图形处理和加速核心芯片. 从NVIDIA支持的矩阵表中查找出GK106支持格式分别为: NVDEC解码:
最简单的基于FFMPEG的音频编码器(PCM编码为AAC)
http://blog.csdn.net/leixiaohua1020/article/details/25430449 本文介绍一个最简单的基于FFMPEG的音频编码器.该编码器实现了PCM音频采样数据编码为AAC的压缩编码数据.编码器代码十分简单,但是每一行代码都很重要.通过看本编码器的源代码,可以了解FFMPEG音频编码的流程. 本程序使用最新版的类库(编译时间为2014.5.6),开发平台为VC2010.所有的配置都已经做好,只需要运行就可以了. 流程(2014.9.29更新) 下面附一
最简单的基于FFMPEG的视频编码器(YUV编码为H.264)
本文介绍一个最简单的基于FFMPEG的视频编码器.该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据.编码器代码十分简单,可是每一行代码都非常重要,适合好好研究一下.弄清楚了本代码也就基本弄清楚了FFMPEG的编码流程.眼下我尽管已经调通了程序,可是还是有些地方没有全然搞明确,须要下一步继续探究然后补充内容. 本程序使用最新版的类库(编译时间为2014.5.6),开发平台为VC2010.全部的配置都已经做好,仅仅须要执行就能够了. 流程图(2014.9.29更新) 以下附一张使
使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均OK 自己依据博客的代码,vs2010搭建的測试环境.资源下载 详细代码: #define _AFXDLL #include<afxwin.h> #ifdef __cplusplus extern "C" { #endif #include <libavcodec/avco
FFmpeg源代码结构图 - 编码
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 FFmpeg源代码结构图 - 编码 [通用] FFmpeg 源代码简单分析:av_register_all() FFmpeg 源代码简单分析:avcodec_register_all() FFmpeg 源代码简单分析:内存的分配和释放(av_malloc().av_free()等) FFmpeg 源代
最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV编码为H.264) 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265)) 最简单的基于FFmpeg的编码器-纯净版(不包含libavformat) ===================================================== 前一阵子做过一
最简单的基于FFMPEG的图像编码器(YUV编码为JPEG)
伴随着毕业论文的完成,这两天终于腾出了空闲,又有时间搞搞FFMPEG的研究了.想着之前一直搞的都是FFMPEG解码方面的工作,很少涉及到FFMPEG编码方面的东西,于是打算研究一下FFMPEG的编码.在网上看了一些例子,发现要不然是难度略微有些大,要不然就是类库比较陈旧,于是就决定自己做一个编码方面的例子,方便以后学习. 简介 本文的编码器实现了YUV420P的数据编码为JPEG图片.本着简单的原则,代码基本上精简到了极限.使用了2014年5月6号编译的最新的FFMPEG类库. 程序很简单,打开
热门专题
system-auth 密码长度
idea 添加xml配置文件提示
docker registry查看仓库中的镜像
java中的forEach()的用法
怎么在linux中安装多个nginx
oracle中sql根据身份证号码计算性别
c# shellexecute打开记事本
java extends和implements
word里面小数点前的零怎么加进去
静态方法持有context 内存问题
c# 动态创建对话框 无法置顶
mongodb分片集群状态查询
ecshop使用体会
elementui 百度地图
pdfium 保存修改内容
微信小程序 view white-space 真机无效
js根据display判断
docker 部署mtail
httpclient 处理set-cookie
sublime latex endnote 引用文献