首页 > TAG信息列表 > avcodec

C/C++音视频高级开发 FFmpeg编程入门

1 播放器框架 2 常用音视频术语 • 容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。 • 媒体流(Stream):表示时间轴上的一段连续数据,如一段声音数据、一段视频数据或一段字幕数据,可以是压缩 的,也可以是非压缩的,压缩的数据需要关联特定的编解码器(有些码流音频他是

avcodec_decode_video2使用参数picture注意点

一句话:解码时,当AVCodecContext的refcounted_frames字段为0,则frame的分配与释放由ffmpeg内部本身控制。ide 那么使用是要注意不要破坏picture的数据指针。this   依据:spa AVCodecContext指针     /**     * If non-zero, the decoded audio and video frames returned from 

FFmpeg 新旧API编码

背景 直播SDK一开始使用的FFmpeg 2.8版本的,现在的FFmpeg最新版已经是4.4了。播放器编辑器使用的FFmpeg都是4.0的版本;新版本FFmpeg在内部结构也做了优化,效率、稳定性相比较旧版本都提升了不少。所以直播SDK FFmpeg也要必须升级了。 简介 直播SDK内部主要3部分使用了FFmpeg: 使

ffmpeg编码:xavc 42210bit+mxf

       AVC是高级视频编码的简称(Advanced Video Coding),也被叫做H264。代表产品有x264库。AVC有四种配置(profile)。分别是:Baseline、Extended、Main、High。XAVC符合H.264 Level 5.2标准。       官网ffmpeg.exe执行如下命令可以生成AVC的mxf文件,本人自编译64位ffmepg(带x2

FFmpeg源代码:avcodec_receive_frame

avcodec_receive_frame() 函数的主要功能是从解码队列中取出一帧 avcodec_receive_frame()的声明位于ffmpeg/libavcodec/avcodec.h , 如下: /** * Return decoded output data from a decoder. * * @param avctx codec context * @param frame This will be set to a refere

ffmpeg之avcodec_open2

目录官方源码 官方源码 /** * Initialize the AVCodecContext to use the given AVCodec. Prior to using this * function the context has to be allocated with avcodec_alloc_context3(). * 利用第二个参数codec初始化codec_ctx,此函数调用前必须使用avcodec_alloc_context

ffmpeg之avcodec_alloc_context3

目录结构体AVCodecContext结构体AVCodec函数声明avcodec_alloc_context3函数实现 结构体AVCodecContext 点击这里查看AVCodecContext 结构体AVCodec 点击这里查看AVCodec 函数声明avcodec_alloc_context3 /** * Allocate an AVCodecContext and set its fields to default values

基于 FFMPEG 的视频解码(libavcodec ,致敬雷霄骅)

基于 FFMPEG 的视频解码(libavcodec ,致敬雷霄骅) 本文参考了雷博士的博客: 最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器 基本上雷博士这篇博客已经把这个问题讲的挺清楚了。但是 ffmpeg 新版本的 API 有变化,这篇博客的代码已经无法直接编译运行。所以我写了今天这篇

ffmpeg rgb_to_mp4

视频编码 1.读取RGB文件转换为yuv 2.压缩为h264 3.封装为MP4 ffmpeg -i test.mp4 -pix_fmt bgra out.rgb av_interleaved_write_frame 1.AVFormatContext *s 2.AVPacket *pkt 3.按照dts排序 4.av_write_frame (缓冲处理dts) rgb_to_mp4.cpp extern "C" { #include <liba

【流媒体开发】17、FFmpeg基础入门

一、播放器框架 二、常用音视频概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,比如mp4、flv、mkv等。媒体流(Stream): 表示时间轴上的一段连续数据,如一段声音数据、一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器(有些码流音频

梳理FFmpeg基础知识

基本步骤 八大函数库的作用 Acvodec: 编解码库 Avdevice:设备输入输出库 Avformat:封装格式相关库 Swscale:视频像素格式转换库 swresample:音频采样数据库 avfilter:滤镜特效库 Avutil:工具库 Postproc:宏文件库 基本步骤 注册函数 av_register_all() 头文件(libavformat

【AVD】FFmpeg + MediaCodec 实现 Android 硬件解码,中间有个大坑

最近在做移动端音视频编解码,首先要实现的是移动端视频的解码功能。纯的 FFmpeg 方法在移动端也能实现,但是效率上的确要慢一些,1080p 的视频还好,但是上到 2k、4k,那个解码速度(以肉眼可见的速度解码一帧),就没法忍受了。因此要搞移动端硬件解码,以加速解码速度,同时释放部分 CPU 资

如何查看lib库和dll库中的函数列表

1、启动vs,进入工具===》Visual Studio命令提示选项,打开vs自带的命令行工具 2、进入到库文件所在目录 3、执行dumpbin /exports .\avcodec.lib > 1.txt将库中函数列表重定向到当前目录的1.txt文件中便于查看 4、执行dumpbin /exports .\avcodec.dll > 1.txt将库中函数列表重定向到

音视频解码流程

上一篇我们介绍了如何打开文件读取帧,现在,我们需要将成功读取的帧解码出来,所以,这里我们就需要要到以下几个结构体: AVCodecContext:这个结构是一个解码器上下文,跟上一篇的formatContext一样。 AVCodec:这个结构是解码器。 下面我就进行一个简单的解码过程讲解: 1、首先我们需要申明一个

FFmpeg音频解码

1.ffmpeg解码 从本地读取 AAC 码流,然后解码 大致流程 解码需要理解四个结构体AVStream、 AVPacket 和 AVFrame 以及 AVCodecContext, 其中AVPacket 是存放是编码格式的一帧数据, AVFrame 存放的是解码后的一帧数据。 解码的过程其实就是从AVCodecContext 取出一个AVPacket

史上最强vue总结来了,全网独家首发!

第一次观看我文章的朋友,可以关注、点赞、转发一下,每天分享各种干货技术和程序猿趣事 前言 随着移动终端的快速发展,Android开发人员也越来越多,Android开发市场也进入了一个饱和的状态,Android开发人员也面临着难找一份好工作的处境。 而找工作的第一关就是面试,一个好的面试往

FFMPEG硬解加速器后端的对接实现

许多计算平台提供专用硬件来执行一系列与视频相关的任务。使用这样的硬件可以让解码、编码或后处理效果等操作更快地完成,减少CPU的占用率。在PC上,视频硬件通常集成到GPU(比如AMD,Intel,NVIDIA或者VideoCore),而在移动soc类型的平台上,它通常是一个独立的IP核心,被称为VE,或者VPU(vid

FFmpeg源码分析:avcodec_open2

初始化AVCodecContext /** * Initialize the AVCodecContext to use the given AVCodec. Prior to using this * function the context has to be allocated with avcodec_alloc_context3(). * * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_na

FFmpeg源码分析:avcodec_find_decoder

查找解码器 const AVCodec * codec = avcodec_find_decoder(AV_CODEC_ID_AAC); 定义 AVCodec *avcodec_find_encoder(enum AVCodecID id) { return find_codec(id, av_codec_is_encoder); } static AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *)) {

升职加薪必看!Android开发究竟该如何学习,附架构师必备技术详解

前言 笔者是某211非计算机相关专业2018届本科生,在校期间有半年多的互联网小公司实习经历。 毕业之后投递360 ,入职了360企业安全成为专门的前端开发工程师,有幸进入一个很赞的团队,遇到很棒的导师和leader ,成长杠杠的。 跳槽计划 工作一年多后,于今年七月有明确的跳槽计划,这个

整理出Android逆向系列学习进阶视频,附超全教程文档

写在前面 记得我大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6、7年多了!但总感觉知识点很零散,并且不够深入,遇到瓶颈,所以有了这文章。 本文是我对自身的Android编程技能的总结、思考和反省,意在系统地、深入

2021最新Android知识体系总结,最全Android知识总结

前言 Hi~,我是 2020 届物联网专业毕业生,现就读于杭州。谨以此文来记录我的秋招以及入门前端以来的学习历程,如有错误,希望大家能及时提出! 面试情况 前前后后一共面试了 14 家公司的前端岗,按城市划分为: 北京:小米,京东,美团,百度,去哪儿杭州:阿里,网易,微店,字节跳动上海:七牛云,哈啰出行

FFmpeg开发XPlay2.0播放器-03 FFmpeg解码

1 avcodec_find_decoder 查找解码器 使用前先调用avcodec_register_all(); /** * Register all the codecs, parsers and bitstream filters which were enabled at * configuration time. If you do not call this function you can select exactly * which formats you wan

Qt+FFMPEG学习(一)视频帧转换为QImage

extern "C"{ #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" #include "libavformat/avio.h"

从入门到精通系列Android高级工程师路线介绍,终获offer

开头 这里是一些个人开发者接私活和自己做软件加广告的一些科普知识。可是做软件,需要服务器,需要后台,对于一些小的开发者,想赚点广告费而又不想做后台使用服务器的人来说,网上提供了一些免费的接口,可以供我们使用,提供了许多数据。在这里我分享两个不错的提供WEB服务的网站。 八