ffmpeg
一朵桃花压海棠
专注音视频处理,流媒体开发,5年音视频开发经验,对WebRTC,FFmpeg,OpenGLES有一定开发经验
展开
-
avformat_seek_file及其flag含义
我们从ijk中seek的处理流程来看ffmpeg的这个问题int ffp_seek_to_l(FFPlayer *ffp, long msec){ assert(ffp); VideoState *is = ffp->is; int64_t start_time = 0; int64_t seek_pos = milliseconds_to_fftime(msec); int64_t duration = milliseconds_to_fftime(ffp原创 2020-08-20 15:26:57 · 4488 阅读 · 0 评论 -
ijkplayer-添加播放截图功能
应用播放的时候需要截图,可以在上层使用TexturView来使用截图,不过太具有局限性呢,还是在底层处理比较好。那么先分析下可以在哪里加截图呢?看到网上很多做的都不能支持硬解截图,这样肯定是不行的。所以我们可以选择在video_image_display2中来做截屏处理。添加shot_screen.h#ifndef _SHOT_SCREEN_H#define _SHOT_SCREEN_H#include <jni.h>#include "ff_ffplay_def.h"#i.原创 2020-08-14 13:55:44 · 1039 阅读 · 1 评论 -
ijkplayer-旋转角度实现
一app开发,火急火燎的拿来一个视频,说录制的视频播放角度都不正常。拿过来一看,确实,角度是歪的,用系统的mediaplayer一试,是正常的。把视频放到ffmpeg中,可以看到视频metadata下视频旋转角度是90度。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k794Sepj-1597211746055)(https://note.youdao.com/yws/api/personal/file/E49561CBC4B44D7584D7F229A786E104?.原创 2020-08-12 13:56:05 · 2338 阅读 · 0 评论 -
ijlplayer-花屏问题分析
今天遇到个应用在S2机器上拖动播放随机花屏的问题,其他机子都没有。那么如何分析花屏问题呢,我这里主要分析点播和本地文件播放导致的花屏,并不涉及直播花屏分析?分析花屏问题无外乎从解复用->解码->显示这三步开始排查。(好吧,这个花屏问题真的让人蛋疼啊)1.排查是否显示问题先从显示开始排查,可以直接把解码后的数据编码成图片然后取出来,如果取出来的图片是花屏的,那么就继续往解码以及解复用开始排查。如果取出来的图片不是花屏的,那么就可以判断为显示导致的花屏。先看下在jik中对解码后的帧编码图.原创 2020-08-12 13:55:00 · 1476 阅读 · 0 评论 -
ffmpeg系列-解复用流程解析
从我的笔记ffmpeg-mov格式与分离器实现详解一文中,我们已经知道了mov的demuxer相关实现。本文主要来分析demuxer的流程。1.结构流程图从上面的结构图中我们可以看到AVFormatContext的iformat指向AVInputFormat。2.实现流程图3.avformat_open_input函数作用首先看函数的声明int avformat_open_input...原创 2019-04-24 11:26:52 · 2257 阅读 · 0 评论 -
ffmpeg系列-协议操作解析-AVIOContext,URLContext,URLProtocol,HTTPContext
1.协议操作对象结构协议操作对象结构:协议操作的顶层结构是AVIOContext,这个对象实现了带缓冲的读写操作;FFMPEG的输入对象AVFormatContext的pb字段指向一个AVIOContext。AVIOContext的opaque实际指向一个URLContext对象,这个对象封装了协议对象及协议操作对象,其中prot指向具体的协议操作对象(如URLProtocol),priv...原创 2019-04-28 08:50:40 · 1693 阅读 · 0 评论 -
ffmpeg系列-编译
1.ubuntu下编译下载ffmpeg源码 git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg如果只是正常编译的话./configure --disable-x86asmmake如果本地编译安装了openssl和x264库的话//编译支持https--264编码--支持视频水印./configure --disable-x8...原创 2019-04-28 08:47:21 · 437 阅读 · 0 评论 -
FFmpeg系列-视频解码后保存帧图片为ppm
在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){ FILE *pFile; char szFilena...原创 2019-04-28 08:46:14 · 927 阅读 · 2 评论 -
ffmpeg系列-视频旋转角度实现
一app开发,火急火燎的拿来一个视频,说录制的视频播放角度都不正常。拿过来一看,确实,角度是歪的,用系统的mediaplayer一试,是正常的。把视频放到ffmpeg中,可以看到视频metadata下视频旋转角度是90度。ijk中有提供视频角度旋转的接口: //开启自动旋转,这里旋转的是视频ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATE...原创 2019-04-23 15:25:11 · 4854 阅读 · 0 评论 -
ffmpeg系列-解决ffmpeg获取aac音频文件duration不准
本文原创自ABCDEHXK——转载请加以说明 这个问题是这样产生的,一同事反应会随机出现ijk获取到的aac文件的duration不准,发来一看,确实不准,在AE或者系统mediaplayer中得到的都是8.4秒(准确时间是MtkAACExtractor: ADTS: duration = 8448000 us),ijk得到的是9.3秒,在播放的时候,在8秒的时候流就结束了,放到编译的ff...原创 2019-04-23 15:23:13 · 9095 阅读 · 2 评论