自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郭风朴(guofengpu)的Android影音专栏

IT路上的牛耕实践者

  • 博客(421)
  • 资源 (1)
  • 收藏
  • 关注

原创 VLC核心LibVLC从源码下载、工程建立、实际使用一篇通

一、VLC和LibVLC关系   VLC属于Video LAN开源项目组织中的一款全开源的流媒体服务器和多媒体播放器。作为流媒体服务器,VLC跨平台,支持多操作系统和计算机体系结构;作为多媒体播放器,VLC可以播放多种格式的媒体文件。主要包有:WMV、ASF、MPG、MP、AVI、H.264等多种常见媒体格式。    LibVLC是VLC的核心部分。它是一个提供接口的库,比如给VLC

2016-05-21 16:14:09 8674

转载 ijkplayer read_thread命令简单解析

在stream_open函数中,初始化完视频,音频,字幕的帧队列后,启动了两个线程video_refresh_thread:刷新视频帧线程 read_thread:读取本地磁盘或者网络视频资源read_thread流程调用avformat_alloc_context 创建AVFormatContext对象,主要为函数指针赋值,确定默认打开文件的函数,以及关闭文件的函数 调用a...

2018-12-18 10:13:57 1209

原创 ffmpeg 之IP拉流优化 起播速度优化

这个系列主要是写关于用FFmpeg来拉取直播流时,会涉及到的优化项,可作为优化的实践。虽然是针对的直播,但对于点播的播放比如直接播放mp4的流,还是有一样的原理。什么是ip拉流?ip拉流就是指将拉流url里面的域名,比如http://flv-meipai.8686c.com/live/59c3507b20a05d24f928d6cf.flv里面的flv-meipai.8686c.com预先...

2018-12-17 16:56:45 2909

原创 Avformat_open_input函数的分析 结合HTTP协议

前段时间在做直播的优化,主要是优化首屏时间,因为直播播放器大部分都会采用ffmpeg来处理,所以就会用到avformat_open_input这个函数,这也是首屏耗时比较多的一个地方,这里我主要跟踪一下http的请求以及rtmp的请求,源码都是开源的,这里主要是记录下来以备自己查询,本篇文章主要是是以ijkplayer源码为基础分析的。avformat_open_input这个函数的作用是打开...

2018-12-17 16:50:26 1449

原创 WebRTC目录结构

文章目录WebRTC 目录结构WebRTC 目录结构当拿到源代码最先想到的就是每个目录 下面代表什么意思,目录结构详细说明每个目录意思apiWebRTC 接口层。包括 DataChannel, MediaStream, SDP相关的接口。各浏览器都是通过该接口层调用的 WebRTC。call存放的是 WebRTC “呼叫(Call)” 相关逻辑层的代码。audio存放音频网络逻辑层...

2018-12-11 10:43:28 468

原创 WebRTC 音视频应用指南

WebRTC秘籍心法WebRTC庖丁解牛最新目录体系WebRTC庖丁解牛最新目录体系WebRTC版本已经更新到 2.1.3 版本官网地址 需要翻墙目录体系连接地址

2018-12-11 10:33:44 333

转载 Android 图片文件读取

Android图片读取的正确方式。 以下为原文连接 Android图片打开的正确方式

2018-05-16 12:28:58 965

原创 视频直播时的QoS策略

一、如何判断当前的网络状况    可以以发送一帧视频数据的时间为依据,判断当前网络拥塞情况。    网络中出现丢包和抖动,导致接收端接收数据超时,会激发发送端数据重传,重传机制本身挤占网络带宽,导致sendbuffer中的数据进一步发送失败,致使sendbuffer中的数据不断增多,达到上溢的警戒线,此时应用层函数下发数据到sendbuffer就不会瞬间完成,而是会等待sendbuffer

2018-02-01 15:06:44 1359

转载 程序员路在何方

我是程序员,也是老司机。我已过而立之年,也还没过而立之年——年纪是到了,却还没有立,不论是立德、立言还是立功。你问我慌不慌,我问你路在何方。 我当程序员数数日子,八年有余,自封老司机也不算太过分,至少写过的代码比吃过的盐多。那些碰到过的臭虫,被指派的需求,请求的网页,搜索的问题,都是沿路的风景。你问我风景美不美,我问你前路在何方。 我写过客户端、做过网站、写过后端服务,踩过的坑,多

2017-12-27 14:28:05 1916 3

转载 是网络直播延时(1):起播延时及优化

谁都知道清晰度、流畅度、延时是直播的几大关键指标,尤其是在互动直播、移动直播大行其道的当下,延时更是成为了各直播平台、CDN、直播云服务商比拼的至高点。然而,但是,BUT,你真的了解延时么?不能全面了解又何谈优化?观止云多年来专注于在线视频技术研发与创新,踩过坑趟过水,更积累了不少经验,今天我们来谈谈直播延时及其优化办法。一、直播延时直播延时主要分为直播起播

2017-11-19 19:48:56 1541

原创 从直播CDN的原理说起,谈如何解决延时和连麦的老难题

范文正文到处都在谈直播,直播技术目前越来越大众化,但也面临着更多的挑战。本次分享主要介绍直播的一般流程,CDN的技术原理及架构,CDN直播技术的难点和对应的解决方案。希望能够给大家带来帮助,更希望能推动实时直播技术的改进和改革。下面是本文的要点:直播的一般流程;CDN的技术原理及架构;CDN直播的技术难点和应对方案;

2017-11-12 19:27:59 6837

原创 Ijkplayer直播App卡顿问题分析

一. 出现问题观看自己开播的直播间,经常出现卡顿,而且画面一卡6,7s,重新播放时会出现跳帧,卡顿频率也较高,导致该App可用性极低。二. 分析1. 直播架构分析根据log与抓包分析,其使用协议与后端架构如下:直播server国内:福建泉州(联通)、广东佛山、肇庆(电信)国外:如果ss登陆韩国,则访问韩国机房拉流CDN国内

2017-11-12 17:21:28 7233 1

转载 超百万观众同场看直播流畅不卡顿,快手如何做到的?|首次披露

移动视频直播经过 2016 年的井喷期,已经进入下半场,大家的关注点已经从如何构建完善的直播平台的粗放增长阶段,转入精细化运营阶段。如何在巨大的流量、复杂的应用场景、复杂的网络条件下,持续优化用户体验,是业界十分关注的话题。快手拥有 5 亿注册用户,单个直播间人数峰值已经超过 180 万,他们针对海量用户,基于大数据技术,在首屏和流畅度优化上做了大量的探索与实践。快手直播是如何设计全链路质量监控方

2017-11-03 10:25:02 7095

转载 RTP协议分析

RTP协议分析第1章.     RTP概述1.1.  RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,

2017-09-30 14:44:37 510

转载 【FFMPEG】谈谈RTP传输中的负载类型和时间戳

谈谈RTP传输中的负载类型和时间戳最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各的应用环境,但是仅仅有库就能解决一切问题吗?可能仿照着一些例子程序,你能够

2017-09-30 14:42:49 536

转载 RTP协议全解析(H264码流和PS流

写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/392073051、RT

2017-09-30 11:39:27 709

原创 RTSP协议消息格式及SDP协议解析

1 RTSP消息格式:RTSP的消息有两大类 --- 请求消息(request), 回应消息(response)。请求消息:方法 URI RTSP版本 CR LF 消息头 CR LF CR LF 消息体 CR LF 如下:DESCRIBE rtsp://192.168.1.211 RTSP/1.0CSeq: 1Accept: application/sd

2017-09-30 11:28:41 1887

转载 Android播放声音SoundPool、MediaPlayer、AudioTrack

Android平台中关于音频播放有以下三种方式:    1.SoundPool ---- 适合短促且对反应速度比较高的情况(游戏音效或按键声等)   2.MediaPlayer ---- 适合比较长且时间要求不高的情况   3.AudioTrack ---- 播放解码后的PCM码流 方法一:SoundPool1)SoundPool简介        SoundPoo

2017-09-29 17:23:06 907

原创 Android的10毫秒问题 解读Android系统音频通道延迟缺陷

许多移动应用在很大程度上依赖于低延迟音频功能,例如一些游戏、合成器和数字音频工作站[Digital Audio Workstations,DAWs],交互式音频应用和乐器模拟应用,以及即将成为下一波潮流的虚拟现实应用,在苹果的平台上[App Store+iOS设备]发展兴盛——并让App Store和iOS开发者获得的巨大收益而Android上是基本不存在的。Android的10毫秒问题,是对

2017-09-29 17:12:02 8361

转载 x264参数介绍(一、帧类型和码率控制)

【 翻译 】x264参数介绍(一、帧类型和码率控制)2010年10月2日评论 发表评论翻译自:http://mewiki.project357.com/wiki/X264_Settings,水平有限,勿吝指教。第二部分:http://blog.yikuyiku.com/?p=2206输入用1个绝对路径定义输入文件(或者2个,rawYUV文件)。如下例:x26

2017-09-22 11:20:18 2644

转载 移动端摄像头yuv旋转、裁剪、镜像、格式转换算法的实现及其原因

存在问题移动端录像在yuv数据上存在如下问题:无论android还是ios都不能直接从摄像头取出颜色空间为i420的数据,所以在编码前需要进行格式转换。而且由于所取图像得分辨率必须是摄像头所提供分辨率中得一组,所以有可能需要裁剪。另外由于(1)想让无论用户哪个方向拿手机所录的视频内容永远“头朝上”( 2)摄像头默认返回图像为横屏图像(宽大于长)所以需要旋转。

2017-09-21 15:01:14 1210

转载 AVFrame关于视音频数据存储

1、概述这几天用ffmpeg实现简单音频转码,在写程序的过程中发现音频在AVFrame中存储与视频很相似,音频要复杂一些,本人记性不好,所以在这里记录下来,以作备忘。2、2个数据成员在AVFrame中有2个很重要的数据成员,一个是data,一个是linesize。data中存储的是未编码的源始数据(不论视音频),linesize中存储的是每行data中数据大小。data的定义如下:

2017-09-20 14:44:13 731

转载 NDK编译c包含C++头文件 error: unknown type name 'class' 的解决方法

在进行native开发的时候,难免会遇到C文件包含C++头文件而调用C++函数,若没做什么处理,直接include进行编译的话,会遇到以下错误:error: unknown type name ‘class‘error: expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before ‘{‘ token那么怎么解决呢?首先,找下报

2017-09-20 10:20:51 1166

转载 ffmpeg AVFilter介绍

参考雷老师:filter 视频添加水印log:      http://blog.csdn.net/leixiaohua1020/article/details/29368911一  filter概念详细概念描述和官方demo,参考: http://blog.csdn.net/rootusers/article/details/43305387如下图,filter就

2017-09-18 18:12:27 914

转载 FFmpeg源代码分析:libswscale的sws_getContext()

打算写两篇文章记录FFmpeg中的图像处理(缩放,YUV/RGB格式转换)类库libswsscale的源代码。libswscale是一个主要用于处理图片像素数据的类库。可以完成图片像素格式的转换,图片的拉伸等工作。有关libswscale的使用可以参考文章:《最简单的基于FFmpeg的libswscale的示例(YUV转RGB)》libswscale常用的函数数量很少,一般情况下就3个:

2017-09-18 18:04:54 1179

转载 ffmpeg 使用滤镜

ffmpeg 中滤镜的实现其实并不高明,但是功能强大,先给出过滤镜的代码,再翻译我认为有的玩的滤镜。一帧通过滤镜的函数:[cpp] view plain copyint Filter_One_Frame(FilterArgs *filter_args,AVFrame *frame, AVFrame *filt_frame,const char *

2017-09-18 17:59:24 695

转载 GPUImage的125种滤镜种类

地址:https://github.com/BradLarson/GPUImage#import "GLProgram.h"// Base classes#import "GPUImageOpenGLESContext.h"#import "GPUImageOutput.h"#import "GPUImageView.h"#import "GPUImageVideoCamera.h

2017-09-18 17:07:40 1838

原创 Instagram技术上做到拍摄/选取视频+滤镜生成视频全程无等待原因以及时间对算法的制约

国内的主流段视频软件如快手、秒拍、美拍在编辑视频的时间效率上都远不如Ins做的好,很奇怪Ins是全程GPU加速么一般技术选型都是GPUImage或者ffmpeg进行封装前者直接操作OpenGL ES,效率高但是没有编码解码功能后者效果很多,但是h.264编码解码在移动设备上太慢了有什么可以做实时编解码的技术支撑这个需求么?  时间对数据的实时处理有至关重要的阻碍要素,时间越快越好,

2017-09-18 16:41:35 1204

原创 ffmpeg学习:滤镜(实现视频缩放,裁剪,水印等) -

一.滤镜滤镜可以实现多路视频的叠加,水印,缩放,裁剪等功能,ffmpeg提供了丰富的滤镜,可以使用ffmpeg -filters来查看: Filters: T.. = Timeline support .S. = Slice threading ..C = Command support A = Audio input/output V = Video input/ou

2017-09-18 15:18:39 2594

转载 FFmpeg 的sws_getContext函数 、sws_scale函数

FFmpeg里面的sws_scale库可以在一个函数里面同时实现:1.图像色彩空间转换;2.分辨率缩放;3.前后图像滤波处理。其核心函数主要有三个:// 初始化sws_scalestruct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,                  

2017-09-14 16:49:47 735

转载 FFmpeg缩放swscale详解 <转>

缩放:           利用ffmpeg进行图像数据格式的转换以及图片的缩放应用中,主要用到了swscale.h文件中的三个函数,分别是: struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,

2017-09-14 16:48:07 573

转载 ffmpeg 参数一览表

基本选项:-formats输出所有可用格式-f fmt指定格式(音频或视频格式)-i filename指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头-y覆盖已有文件-t duration记录时长为t-fs limit_size设置文件大小上限-ss time_off

2017-09-06 16:56:47 302

转载 ffmpeg 几条命令

1,获取视频的信息   ffmpeg -i video.avi2,将图片序列合成视频   ffmpeg -f image2 -i image%d.jpg video.mpg   上面的命令会把当前目录下的图片(名字如:image1.jpg, image2.jpg, 等...)合并成video.mpg3,将视频分解成图片序列   ffmpeg -i video.mpg

2017-09-06 16:55:20 405

转载 关于ffmpeg 的命令总结

当然先安装了 gentoo 下一条命令搞定emerge  ffmpeg 格式转换 (将file.avi 转换成output.flv)     ffmpeg -i  file.avi   output.flv       -i 表示输入文件  :现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi两个命令            

2017-09-06 16:54:44 444

原创 FFmpeg 基本用法

FFmpegFFmpeg 基本用法本课要解决的问题1.FFmpeg的转码流程是什么?2.常见的视频格式包含哪些内容吗?3.如何把这些内容从视频文件中抽取出来?4.如何从一种格式转换为另一种格式?5.如何放大和缩小视频?6.如何旋转,翻转,填充,裁剪,模糊,锐化视频?7.如何给视频加logo,删除logo?8.如何给视频加文本,动态文本?9.如何处理图片?

2017-09-06 16:52:53 523

原创 Samba服务器共享文件设置方法

[share]comment = Share Folder require passwordbrowseable = yespath = /valid users = rootpublic = yeswritable = yesavailable = yes

2017-06-20 18:44:52 732

转载 RTMP协议分析及H.264打包原理

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。RTMP协议是一个互联网五层体系结构中应用层的

2017-06-16 16:30:25 775

转载 直播推流实现RTMP协议的一些注意事项

—— 2017-2-12 更新RTMP 协议整理了一下,包括rtmp 消息类型,rtmp 如何分块,rtmp分块例子。 用脑图整理了一下,使用Xmind 打开,URL:https://github.com/gezhaoyou/RtmpMindmaprtmp 消息类型 Paste_Image.pngrtmp 消息分块Paste_Image.png

2017-06-16 15:03:21 1171

转载 rtmp抓包分析

tcpdump抓包:tcpdump host IP and tcp port 1935 -w a.pcapwhireshark分析:用wireshark打开a.pcap3握手(Handshake)一个RTMP连接以握手开始,我们先看下图:首先我们要明确的是客户端IP是192.168.1.102(我的电脑),123.183.164.23是RTM

2017-06-16 14:55:25 1833

转载 RTMP协议从入门到放弃

RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。正好最近在从事这方面的工作,在此记录下自己对RTMP的

2017-06-15 15:32:43 439

嵌入式智能家居软硬件产品研发流程,产品研发项目协作控制

产品经理,项目经理必看。产品研发具体流程,特别适合新产品,新项目研发的总体把控,从项目方案收集、外观结构设计,硬件原理图PCBlayout、软件研发测试到试产、BOM变更、材料控制、SMT贴片、首件、试产。所有流程相近描述。绝对是智能硬件产品项目开发经理,必看首选,

2016-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除