流媒体-直播-编解码
文章平均质量分 81
小码哥_WS
这个作者很懒,什么都没留下…
展开
-
YUV格式解析
YUVYUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号B-Y(即U)、R-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的原创 2017-04-19 11:44:18 · 1788 阅读 · 0 评论 -
Android——直播推流SDK
概述:好像有三个月没有更新博客了,年前实在是忙的累成狗啊。。。本想直播功能稳定了就没那么多事了,没想到又要搞魔法短视频功能,马丹,短视频玩成了花啊,撸起袖子干。 现在把我们项目中的直播SDK开源出来,我们是境外直播平台,百万用户,经过半年迭代,SDK已经相当稳定,大家可以放心使用。https://github.com/WangShuo1143368701/WSLiveDemo 这个sdk是...原创 2018-02-27 19:00:32 · 33214 阅读 · 32 评论 -
ffmpeg实战教程(十一)手把手教你实现直播功能,不依赖第三方SDK
直播,2016最火的技术之一了,更多的关于直播的知识:http://blog.csdn.net/king1425/article/details/72489272 …这篇我们就不依赖任何集成好的SDK,自己搭建服务器,用ffmpeg+nginx实现手机直播功能先上图:推流的手机拉流的网页和VL播放器拉流的手机客户端对于nginx服务器的搭建之前有写过:ffmpeg实战教程(九)windows下ff原创 2017-05-19 20:24:01 · 18816 阅读 · 9 评论 -
关于音视频直播技术的总结
流媒体协议 流媒体协议是服务器与客户端之间通信遵循的规定。当前网络上主要的流媒体协议如图所示。直播平台参数对比 主流互联网视音频平台直播服务的参数对比如图所示:直播技术架构图:可以看到直播的流程可以分为如下几步:采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放1.音视频采集采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节原创 2017-05-18 19:41:15 · 13868 阅读 · 0 评论 -
ffmpeg实战教程(九)windows下ffmpeg命令+nginx + rtmp实现推流,拉流。
概述Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流。先介绍一下windows下搭建nginx + rtmp有两种方案: (一) 1.下载ng原创 2017-05-15 14:41:14 · 20935 阅读 · 9 评论 -
ffmpeg源码简析(七)解码-avformat_open_input,avformat_find_stream_info()
1.avformat_open_input打开媒体的的过程开始于avformat_open_input,因此该函数的重要性不可忽视。在该函数中,FFMPEG完成了:输入输出结构体AVIOContext的初始化;输入数据的协议(例如RTMP,或者file)的识别(通过一套评分机制):1判断文件名的后缀 2读取文件头的数据进行比对;使用获得最高分的文件协议对应的URLProtocol,通过函数指针的方式原创 2017-04-24 20:05:42 · 2583 阅读 · 0 评论 -
ffmpeg源码简析(五)编码——avformat_alloc_output_context2(),avcodec_encode_video2()
1.avformat_alloc_output_context2()在基于FFmpeg的视音频编码器程序中,该函数通常是第一个调用的函数(除了组件注册函数av_register_all())。avformat_alloc_output_context2()函数可以初始化一个用于输出的AVFormatContext结构体。它的声明位于libavformat\avformat.h,如下所示。int av原创 2017-04-24 19:22:42 · 1913 阅读 · 0 评论 -
ffmpeg实战教程(七)Android CMake avi解码后SurfaceView显示
在上一篇文章中实现了Android平台MP4解码YUV数据, 本篇我们实现Android平台解码avi并用SurfaceView播放。先上图看效果:思路: 1.把封装好的视频数据解码为YUV 2.YUV数据转化为RGB。 3.一帧一帧的传给SurfaceView显示出来PS: 其实YUV数据可直接在SurfaceView显示,在研究Android系统多媒体框架的stagefright视频显原创 2017-05-10 09:30:58 · 4760 阅读 · 5 评论 -
windows下编译最新版ffmpeg3.3-android,并通过CMake方式移植到Android studio2.3中
windows下编译最新版ffmpeg3.3win下编译: 1.下载安装MinGW:http://sourceforge.net/projects/mingw/files/ 2.下载yasm http://yasm.tortall.net/Download.html 3.下载 ffmpeg:https://www.ffmpeg.org/download.html 编辑ffmpeg文件夹下原创 2017-04-21 20:34:02 · 8557 阅读 · 25 评论 -
Camera源码解析之数据传递
MTK Camera HAL 层数据传递主要三模块:一:预览(StartPreview)二:拍照(TakePicture)三:回传(PreviewCallBack)一:预览(StartPreview)AP层下达预览指令后如何获取数据,数据是什么格式的,最后拿到数据后 是如何去预览,以下分为四部分解析预览数据流程1 :AP 层到HAL 层流程及获取数据参数 AP层下达startPreview后调到原创 2017-04-27 09:26:53 · 1490 阅读 · 0 评论 -
细数Android5.0到Android7.X 多媒体技术新特性
Android 5.0 行为变更媒体播放如果您要实现显示媒体播放状态或传输控件的通知,请考虑使用新的 Notification.MediaStyle 模板,而不是自定义 RemoteViews.RemoteView 对象。无论您选择使用哪个方法,请务必将通知的可见性设为 VISIBILITY_PUBLIC,以便可通过锁定屏幕访问您的控件。请注意,从 Android 5.0 开始,系统不再将 Remo原创 2017-04-28 16:23:26 · 4517 阅读 · 0 评论 -
ffmpeg实战教程(三)音频PCM采样为AAC,视频YUV编码为H264/HEVC
音频PCM采样数据编码为压缩码流(MP3,WMA,AAC等)简单介绍一下流程中各个函数的意义:av_register_all():注册FFmpeg所有编解码器。avformat_alloc_output_context2():初始化输出码流的AVFormatContext。avio_open():打开输出文件。av_new_stream():创建输出码流的AVStream。avcodec_find_原创 2017-05-04 20:28:15 · 5728 阅读 · 2 评论 -
ffmpeg必知道的知识点
ffmpegFFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、原创 2017-04-22 10:04:36 · 11266 阅读 · 1 评论 -
音视频开发术语介绍
视频分辨率标清、高清、720P… 标清:意思就是“标准清晰度”,是物理分辨率在720p以下的视频格式。所谓标清,英文为“Standard Definition”,是物理分辨率在1280P*720P以下的一种视频格式,是指视频的垂直分辨率为720线逐行扫描。具体的说,是指分辨率在400线左右的VCD、DVD、电视节目等“标清”视频格式,即标准清晰度。 高清:而物理分转载 2017-04-19 12:28:15 · 4278 阅读 · 0 评论 -
MediaCodec+MediaExtractor+TextureView+AudioTrack实现简易视频播放器
MediaCodec,MediaExtractor,TextureView这三个类的作用就不说了。 https://blog.csdn.net/column/details/15450.html主要思路流程:MediaExtractor解封装,拿到H264数据。 MediaCodec把数据解码到Surface中。 TextureView展示Surface中的数据。当然这个还可以用...原创 2018-07-28 17:30:46 · 2960 阅读 · 4 评论