
音视频
文章平均质量分 57
oncealong
这个作者很懒,什么都没留下…
展开
-
Android ndk编译FFMPEG/IJKPlayer报错 `ndk missing -D__STDC_CONSTANT_MACROS` 解决办法
本地编译ijkplayer, 需要调试ndk, 按照`0003-armv7a-enable-debugging-with-LLDB.patch`所说进行修改. 但是运行时提示:ndk missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS查找了一番, 没有找到直接的答案. 通过提示知道需要给cpp增加一个标识,...原创 2018-11-21 20:13:12 · 460 阅读 · 0 评论 -
ffplay frame queue分析
转自:https://zhuanlan.zhihu.com/p/43564980ffplay用frame queue保存解码后的数据。首先定义了一个结构体Frame用于保存一帧视频画面、音频或者字幕:typedef struct Frame { AVFrame *frame; //视频或音频的解码数据 AVSubtitle sub; //解码的字幕数据 in...转载 2019-06-12 16:25:14 · 1664 阅读 · 0 评论 -
ffplay解码线程分析
转自:https://zhuanlan.zhihu.com/p/43948483ffplay的解码线程独立于读线程,并且每种类型的流(AVStream)都有其各自的解码线程,如video_thread用于解码video stream,audio_thread用于解码audio stream,subtitle_thread用于解码subtitle stream。为方便阅读,先列一张表格,梳...转载 2019-06-12 17:09:08 · 1220 阅读 · 0 评论 -
ffplay audio输出线程分析
转自:https://zhuanlan.zhihu.com/p/44139512ffplay的audio输出同样也是通过SDL实现的。同样地,本文主要介绍audio输出相关内容,且尽量不涉及音视频同步知识,音视频同步将在专门一篇分析。audio的输出在SDL下是被动输出,即在开启SDL会在需要输出时,回调通知,在回调函数中,SDL会告知要发送多少的数据。(关于SDL音频输出可以参考这篇...转载 2019-06-12 17:54:31 · 1266 阅读 · 1 评论 -
ffmpeg里time_base总结 和 ffmpeg中的时间
转自:https://www.jianshu.com/p/bf323cee3b8ehttps://www.cnblogs.com/yinxiangpei/articles/3892982.html第一篇:ffmpeg里time_base总结本来是想写一篇time_base的详细文章,后来发现很多大神写过,那这里我就总结一下各种time_base,方便大家理解。一、time_base...转载 2019-06-13 10:48:53 · 1502 阅读 · 0 评论 -
ffmpeg time_base、FFmpeg时间戳整理、 ffmpeg 时间戳问题汇总
转自:http://www.cnitblog.com/luofuchong/archive/2014/11/28/89869.htmlhttps://www.suninf.net/2018/02/ffmpeg-timestamps.htmlhttps://www.cnblogs.com/loveclover/archive/2011/03/23/1993065.htmlffmpe...转载 2019-06-13 10:58:03 · 5186 阅读 · 0 评论 -
ffplay video显示线程分析
转自:https://zhuanlan.zhihu.com/p/44122324ffplay显示部分代码包括了video、audio、subtitle的显示(输出)。我们知道要显示画面或者输出声音,在windows、linux、macos等不同平台上的接口都不尽相同,对于这个问题,ffplay选择了sdl作为显示SDK,以实现跨平台支持。在阅读本文前,需要读者具备初步的sdl知识,可以...转载 2019-06-13 11:26:15 · 801 阅读 · 1 评论 -
ffplay音视频同步分析——基础概念
转自:https://zhuanlan.zhihu.com/p/44615185由于音频和视频的输出不在同一个线程,而且,也不一定会同时解出同一个pts的音频帧和视频帧。更有甚者,编码或封装的时候可能pts还是不连续的,或有个别错误的。因此,在进行音频和视频的播放时,需要对音频和视频的播放速度、播放时刻进行控制,以实现音频和视频保持同步,即所谓的音视频同步。在ffplay中,音频(audi...转载 2019-06-13 11:53:17 · 933 阅读 · 0 评论 -
带问题重读ijkPlayer
转自:https://www.jianshu.com/p/814f3a0ee997问题主流程上的区别 缓冲区的设计 内存管理的逻辑 音视频播放方式 音视频同步 seek的问题:缓冲区flush、播放时间显示、k帧间距大时定位不准问题... stop时怎么释放资源,是否切换到副线程? 网络不好时的处理,如获取frame速度慢于消耗速度时,如果不暂停,会一致卡顿,是否会主动暂停...转载 2019-06-14 18:01:58 · 906 阅读 · 0 评论 -
ijkplayer框架深入剖析
转自:https://www.jianshu.com/p/daf0a61cc1e0随着互联网技术的飞速发展,移动端播放视频的需求如日中天,由此也催生了一批开源/闭源的播放器,但是无论这个播放器功能是否强大、兼容性是否优秀,它的基本模块通常都是由以下部分组成:事务处理、数据的接收和解复用、音视频解码以及渲染,其基本框架如下图所示:播放器基本框图针对各种铺天盖地的播放器项目,我...转载 2019-06-10 19:31:37 · 1916 阅读 · 0 评论 -
ffplay read线程分析
转自:https://zhuanlan.zhihu.com/p/43672062ffplay中有一个线程专门处理数据读取,即read_thread。read_thread主要按以下步骤执行:准备阶段:打开文件,检测Stream信息,打开解码器 主循环读数据,解封装:读取Packet,存入PacketQueueread_thread的函数比较长,这里不贴完整代码,直接根据其功能分步...转载 2019-06-10 21:12:08 · 1794 阅读 · 1 评论 -
PCM转WAV格式 Wav数据格式的44个字节头部信息汇总
转自:https://blog.youkuaiyun.com/jeffasd/article/details/72466302和 http://ikinglai.blog.51cto.com/6220785/1224481一般通过麦克风采集的录音数据都是PCM格式的,即不包含头部信息,这样导致很多播放器都播放不了,你只能用像Audition这样的专业工具才能进行播放,显然是非常不方便的。为了得...转载 2019-06-21 15:51:15 · 1486 阅读 · 0 评论 -
ffmpeg和ijkplayer里的skip_loop_filter
loop_filter是指环路滤波, 主要是用于画面去块.skip_loop_filter是指对指定帧不做环路滤波, 可以节省CPU.后面会跟-16/0/8/16/24/32/48, 意思如下图AVDiscard释义, 其中48是指'AVDISCARD_ALL', 所有帧都不做环路滤波.https://www.ffmpeg.org/ffplay-all.html(search ...原创 2019-07-08 20:33:35 · 2421 阅读 · 0 评论 -
MP4/QuickTime的“ftyp” 名称完整列表
转自:https://www.ftyps.com/Complete List of all known MP4 / QuickTime 'ftyp' designations Rev 2.0 - 22 Aug 2009 ftyp Description Developer URL Reg'd MIME type Notes /...翻译 2019-07-03 13:24:48 · 828 阅读 · 0 评论 -
H.264编码格式简单分析
转自:https://www.cnblogs.com/jiayayao/p/7086711.html H.264的重要性不再提了。本文主要记录一下H.264的编码格式。H.264官方文档:https://github.com/jiayayao/DataSheet/tree/master/encode-decode/h264。 H.264从层次来看分为两层:视频编码层(VCL, Vid...转载 2019-07-09 09:44:51 · 1678 阅读 · 0 评论 -
ijkplayer android端jni层调试
转自:https://www.jianshu.com/p/560110afcb4d亲测可用本篇文章将跟大家分享一下如何配置ijkplayer的编译脚本,使得我们可以在android studio IDE下调试android端c层的代码。环境要求Android studio3.0.1版本 (可以使用其他版本,但是下面的配置就要做相应的改变,但必须是3以上的版本)Android ...转载 2019-07-03 18:44:54 · 973 阅读 · 0 评论 -
"ftyp"是什么?
转自:https://www.ftyps.com/what.htmlWhat is an "ftyp", anyway? Description Anftypis a four letter code (sometime including blanks) that is used to identify the "type" of encoding used, ...翻译 2019-07-04 14:09:49 · 1103 阅读 · 0 评论 -
ffplay packet queue分析
转自:https://zhuanlan.zhihu.com/p/43295650ffplay用PacketQueue保存解封装后的数据,即保存AVPacket。ffplay首先定义了一个结构体MyAVPacketList:typedef struct MyAVPacketList { AVPacket pkt;//解封装后的数据 struct MyAVPacketL...转载 2019-06-12 15:50:15 · 1867 阅读 · 1 评论 -
Undefined Reference to Typeinfo
转载自:转载自:http://richardustc.github.io/blog/2013/07/undefined-reference-to-typeinfo/在项目中遇到了这样一个问题:C++文件编译都OK,但链接的时候报错:undefined reference to `typeinfo for xxx’。typeinfo是C++中的RTTI(RunTime Type Identif...转载 2019-05-13 13:35:54 · 1044 阅读 · 1 评论 -
IJKPlayer相关参数讲解 问题及解决方法
https://superdanny.link/2017/05/09/iOS-IJKPlayer/IJKPlayer相关指南2017-05-09需求公司以前的直播业务是用Flash开发。为了适应趋势,从去年开始,公司打算使用原生进行开发。这里整理了一些相关的资料。对自己以后也许有所帮助。所谓前人种树,后人乘凉。在此,感谢所有默默无闻分享自己一线经验的老前辈们。参数相关I...转载 2019-05-12 13:41:06 · 9006 阅读 · 0 评论 -
TextureView onSurfaceTextureAvailable回调不执行
TextureView必须工作在硬件加速条件, 否则什么都不执行.因为需要 android:hardwareAccelerated=”true”或者 Window w = activity.getWindow(); w.setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);如果是在Service里面,直接在Andr...原创 2018-12-22 17:05:46 · 16007 阅读 · 1 评论 -
直播疑难杂症排查
直播疑难杂症排查转自: Jhuster大佬的专栏文章, 十分赞 http://blog.51cto.com/ticktick/category16.html 1. 直播疑难杂症排查 — 序http://blog.51cto.com/ticktick/19150242. 直播疑难杂症排查(1)— 播放失败http://blog.51cto.com/ticktick/19175...转载 2019-01-24 21:26:15 · 500 阅读 · 0 评论 -
国内外优秀音视频博客
AVBlog国内外优秀音视频博客收录国内外知名音视频技术相关优秀博客,主要是DaveBobo整理,感谢@DaveBobo,我补充了一些团队号及一些个人,给有志于做音视频开发的朋友一些参考。还会持续更新。个人相关:雷霄骅:http://blog.youkuaiyun.com/leixiaohua1020/简介:雷神,永远的闪耀明星,国内音视频blog第一人卢俊:http://ticktic...转载 2019-01-24 21:39:14 · 845 阅读 · 0 评论 -
FFMPEG Tips
1. FFMPEG Tips (1) 如何打印日志http://blog.51cto.com/ticktick/18670592. FFMPEG Tips (2) 如何提取码流的基本信息http://blog.51cto.com/ticktick/18698493. FFMPEG Tips (3) 如何读取每一帧的信息http://blog.51cto.com/tickt...转载 2019-01-25 10:16:14 · 728 阅读 · 0 评论 -
Android 音视频开发入门指南
音视频这块,目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,希望我后面能挤出时间整一个专题详细讲一讲~~目前的话,我先给出一个大的方向性的学习指南,希望对初学者有所帮助。 我一直相信带着 “任务” 去学习和实践,效率会高很多,因此我列出了一系列音视频相关的 “开发任务”,从简单到困难(当然,不一定非常严格和完美,部分任务先后可调整),大家在完成任务的过程中,遇到...转载 2019-01-25 11:01:57 · 662 阅读 · 0 评论 -
播放器技术分享
1. 播放器技术分享(1):架构设计http://blog.51cto.com/ticktick/23249282. 播放器技术分享(2):缓冲区管理http://blog.51cto.com/ticktick/23262073. 播放器技术分享(3):音画同步http://blog.51cto.com/ticktick/23280034. 播放器技术分享(4):首开时间...转载 2019-01-25 11:05:28 · 314 阅读 · 0 评论 -
FFmpeg_Tutorial
FFmpeg_TutorialFFmpeg工具和sdk库的使用demo一、使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑1、基本介绍对于每一个从事音视频技术开发的工程师,想必没有一个人对FFmpeg这个名称感到陌生。FFmpeg是一套非常知名的音视频处理的开源工具,它包含了开发完成的工具软件、封装好的函数库以及源代码供我们按需使用。FFmpeg提供了非常强大的功能,可以完...转载 2019-01-25 11:39:23 · 392 阅读 · 0 评论 -
先进视频压缩编码(Advanced Video Coding, H.264/AVC)
先进视频压缩编码(Advanced Video Coding, H.264/AVC)专栏地址: https://blog.youkuaiyun.com/shaqoneal/column/info/14109转载 2019-01-25 11:40:44 · 1474 阅读 · 0 评论 -
高效视频压缩编码(High Efficient Video Coding, H.265/HEVC)
高效视频压缩编码(High Efficient Video Coding, H.265/HEVC)专栏地址: https://blog.youkuaiyun.com/shaqoneal/column/info/hevc转载 2019-01-25 11:41:37 · 1424 阅读 · 0 评论 -
技术福利:最全实时音视频开发要用到的开源工程汇总
[转自] https://my.oschina.net/jb2011/blog/16196281、前言实时音视频的开发学习有很多可以参考的开源项目。一个实时音视频应用共包括几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有VP8、VP9、H.264、H.2...转载 2019-02-21 12:55:23 · 2580 阅读 · 1 评论 -
使用XCode debug ffmpeg/ffplay
ffmpeg-xcodeffmpeg xcode projectbuild stepsstep 1 编译 ffmpegtar xvf ffmpeg-3.0.2.tar.bz2 cd ffmpeg-3.0.2 ./configure --enable-debug make -j8step 2 新建一个空的 xcode 项目Create a new Xcode projec...转载 2019-02-15 20:22:23 · 1334 阅读 · 0 评论 -
ffplay,ffplay_g与enable-debug
一. ffmpeg debug level设置及configure enable-debug选项含义./configure --helpDeveloper options (useful when working on FFmpeg itself):--disable-debug disable debugging symbols--enable-debug=LEVEL set the ...转载 2019-02-15 13:54:22 · 1774 阅读 · 0 评论 -
Mac XCode FFmpeg 开发环境配置
[转自: https://blog.youkuaiyun.com/matrix_laboratory/article/details/53519619] 1. 安装FFmpeg这个可以参考 文章Mac FFmpeg x265, aac, ffplay编译安装2. 创建XCode工程我创建了一个FFTest的工程, 3. 导入FFmpeg到重点,其实要说的就是这个3.1 Set L...转载 2019-02-14 15:34:52 · 2247 阅读 · 3 评论 -
OpenGL ES 2.0 渲染管线
OpenGl是一个跨平台的3D图形API标准,OpenGL ES是其适用于便携或嵌入式设备的版本。本文介绍OpenGL ES 2.0的渲染管线。OpenGL ES 2.0 渲染管线OpenGL ES 2.0 的渲染管线如下图所示,其中深色的方格代表OpenGL ES 2.0渲染管线中的可编程部分。顶点着色器 Vertex Shader顶点着色器实现了一系列操作顶点的编程方法...转载 2019-04-26 13:12:26 · 390 阅读 · 0 评论 -
最简单的FFmpeg YUV420P图像拼接实例
转自:https://blog.youkuaiyun.com/DaveBobo/article/details/79645017在项目中需要将解码出来的l两个YUV420P格式的图像合并在一起,然后重新编码为H264,最后封装为mp4文件。主要说明一下两个YUV420P使用FFmpeg合并的过程,需要提前理解YUV420P格式图像的存储结构,然后依次将Y、U、V数据分别写进去就可以了。举例:将两张相...转载 2019-05-20 19:56:06 · 1846 阅读 · 1 评论 -
让IjkPlayer支持插入自定义的GPU滤镜
转自:https://blog.youkuaiyun.com/junzia/article/details/75172160最近因为工作的原因,需要提供一个将我们的AiyaEffectsSDK插入到IjkPlayer中的示例,就不得不好好看了下IjkPlayer的代码。在IjkPlayer中并没有提供设置自定义GPU滤镜的接口,所以最后只能自己动手,以求丰衣足食了。不得不说,Bilibili开源的这个I...转载 2019-05-21 14:00:28 · 741 阅读 · 0 评论 -
H.264的两个概念:DC系数和AC系数
在做熵编码之前,先明确两个概念:DC系数和AC系数。量化后得到的仍是64个系数,量化并没有改变系数的性质。大家知到DCT变换是将数据域从时(空)域变换到频域,在频域平面上变换系数是二维频域变量u和v的函数。对应于u=0,v=0的系数,称做直流分量,即DC系数,其余63个系数称做AC系数,即交流分量。DC系数:对应于u=0,v=0的系数,称做直流分量,即DC系数。AC系数:其余63个系数...原创 2019-07-24 21:16:08 · 3687 阅读 · 0 评论