视音频开发
吐着泡泡说爱你
小学生一枚,,学习嵌入式和视音频开发,数字图像处理
展开
-
视频h.264 解码出YUV分量代码实现
P2P 点对点传输 流媒体传输 Stream serverPTSP RTMP编码现在都是硬件直接编码手机端 pc端不是 手机端有专门的解码 手机端没开放给我们,第三方的库去解码 decode 随随便便解码每秒六七十兆是可以的解码流程:#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#includ原创 2017-05-25 15:53:40 · 1685 阅读 · 1 评论 -
ffmpeg(搭建简单直播系统)
crtmpserver OpenOutput(“rtmp://127.0.0.1:1935/live/stream0”); 在现实环境中,网络好的是不需要检查时间戳的 ,毕竟是直播网络 不是好的时候用udp 不用tcp rtcp只是控制协议,, Wireshark抓包工具AVDictionary *options=nullptr; av_dict_set(&options,”resp原创 2017-06-04 12:24:41 · 2226 阅读 · 0 评论 -
ffmpeg(二) 网络流转发
一种网络流转成另外一种流先解决一个bug 在打开输入时如果摄像头没打开会一直卡死在avformat_open_input()函数这 int64_t lastReadPacktTime; static int interrupt_cb(void *ctx) { int timeout=10; if(av_gettime()-lastReadPacktime>timeout*10原创 2017-06-01 20:15:29 · 2602 阅读 · 0 评论 -
ffmpeg从网上保存视频流到本地文件
DTS 解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据 PTS 显示时间戳这个时间戳用来告诉播放器该在什么时候显示这一帧的数据 dts 解码参考时间,pts是预览参考时间, 在没有B帧的情况下,pts=dts 在有B帧的情况下 同一帧才可能带有不同的dts 和pts 要等到下一帧才能解码,但是显示时间在前面//记一些重要函数//转换时间基原创 2017-05-31 22:12:33 · 6247 阅读 · 0 评论 -
ffmpeg 将网络流保存到本地文件
基本流程 网络包-demux->PES流 PES->mux ->网络流 或本地存储 demux: 解封装 解协议 mux :封装 可以理解为穿脱衣服#ifndef PCH_H#define PCH_Hextern "C"{ #include"libavutil/opt.h" #include"libavutil/channel_la原创 2017-05-31 18:08:43 · 4760 阅读 · 0 评论 -
h.264的SP/SI 帧技术(SP片或SI宏块的P宏块)
H.264提供了多参考帧可选模式,这会产生更好的视频质量和效率更高的编码 相对于I帧参考,5个参考帧可以节约5%-10%的比特率,有助于比特流的恢复,考虑到缓冲区的能力和编码器的效率 目前一般都选取3-5个参数帧 B片中的帧间编码宏块的每个字块都是由一个或者两个参考图像预测而得 B片预测方式包括:宏块分割方式,双向选择方式,参考列表选择方式SP帧编码的基本原理同P帧类似,仍然是基于帧间预测的运原创 2017-05-19 16:34:52 · 2500 阅读 · 0 评论 -
h.264/AVC的结构 NAL结构
帧和場 : 视频中的一场或者一帧可用来产生一个编码图像, 活动量较小的或者静止的图像采用帧编码的方式,活动量 较大的运动图像采用場编码 帧就是逐行扫描 帧就是斜着扫描 对角 宏块,片: 一个图像通常分成若干宏块组成 一个宏块由一个16*16亮度像素和附加一个8*8Cb 和一个8*8Cr彩色像素块组成,每个图像中,若干宏块被排列成片的形式原创 2017-05-18 22:05:01 · 941 阅读 · 0 评论 -
easy ffmpeg
流媒体 :采用流式传输方式在网上播放的媒体格式 ffmpeg 不提供Server架构 ES流 :原始流 ,直接从编码器出来的数据流 里面的数据都是图像信息 、没有时间和包头信息 PES流:ES形成的分组称为PES分组,是用来传递ES一种数据布局 比ES多了时间戳信息 ,标识什么时候编码什么时候播放 TS流: PES形成的分组称为TS分组,是用来传递PES的一种数据布局 加了一些包原创 2017-05-29 19:09:06 · 468 阅读 · 0 评论 -
h.264
h.264 适合在不同网络之间的视频传输,是因为引入了分层结构:是将图像压缩系统分成网络抽象层(NAL)和视频编码层(VCL)从而实现压缩编码与网络传输分离网络抽象层(NAL)专门为视频编码信息提供文件头信息,安排格式以方便网络传输和储存 VCL层是核心部分编码输出的是VCL数据(表示编码视频数据的比特序列)在传输和存储之前被映射到NAL单元(NALU),NAL层在外围,根据视频信号传输的媒介把V原创 2017-05-17 22:14:25 · 345 阅读 · 0 评论 -
视频数据组织结构
视频数据按照不同层次组织,虽然不同的标准中,会有一些差别,但是通常都如下 视频序列层:视频序列有一个序列头部,存储着整个视频序列的信息,比如视频图像的格式,图像的分辨率等,视频序列由多个GOP组成 GOP(图像组)层:视频序列由多个图像组成,包括I 、P、B三种不同类型的帧。 I帧:利用内帧的空间相关进行压缩,压缩效率最低,但必不可少,编码无需用到其他帧的信息,是其他帧编解原创 2017-05-17 19:33:17 · 2414 阅读 · 0 评论 -
视频编解码基础
实用的编码器,往往在一个编码框架下,使用多种编码(压缩)方法 根据编译原理不同可以将其划分为:预测编码,变换编码,量化编码, 熵编码 视频编码通过帧内预测消除时间冗余,通过帧内预测消除空间冗余 预测编码 是最基本的编码方式:包括帧间预测编码,和帧内预测编码 空间冗余:信息在空间有连续性:即利用一帧图像已经编码的部分来预测尚未编码的部分原创 2017-05-17 17:35:08 · 495 阅读 · 0 评论 -
SPS PPS AAC音频 采样率 比特率
每一帧开始都是0x0001 学会按位与 很好用的 一种编程方法H.264的SPS和PPS串 ,包含了初始化H.264解码器所需要的信息参数,包含编码所用的profile level 图像的宽和高,deblock滤波器等码流 帧率 分辨率 码率:视频文件体积除以时间 单位一般为Kbps(K bit/s)或者 Mbps(M bit/s) 单位时间内用来记录视频的数据总量 码原创 2017-05-26 15:41:48 · 3089 阅读 · 0 评论 -
引言 一些唠叨的话
荀子《修身篇》曰 :“”道虽迩,不行不至;事虽小,不为不成“”坚持最重要,,这个视音频开发很难,因为国内很少有对应的资料,没有例子,自己入门的时候无从下手,又不能轻易放弃,从一点一滴 ,解决一个又一个知识点,,翻看外国的网站,自己的英语渣渣的要死,, 国内的资料少的可怜,,无从下手,在这致敬一个人 ,雷神,虽未见面但是确实是看你的简单视频入门,大家可以去看看他的博客,真的6的飞起 。不过他英原创 2017-05-16 14:59:03 · 409 阅读 · 0 评论 -
音频解码 h.264 编码原理 视频等
pcm 数据 然后压缩 压缩算法:G711、Adpmc AAC G711 适合于打电话 压缩率在一半 Adpcm 压缩率达到四分之一 2-3秒就需要一个I帧 P帧是I帧后面相隔1-2帧的编码帧 B帧由前面的I帧或P帧和后面的P帧来进行预测 I帧 帧内编码帧 I帧表示关键帧 可以理解为这一帧画面的完整保留 解码时只需要本帧数据就可以完成(因原创 2017-05-25 22:30:29 · 624 阅读 · 0 评论 -
ffmpeg()音频转码
pcm—aac ffmpeg基本流程都一样设备管理器,麦克风的名称#include"dshow.h"#include"libavdevice/avdevice.h"//获取设备static char *dup_wchar_to_ytf8(wchar_t *w){ char *s=NULL; int l=WideCharToMultiByte(CP_UTF8,0,w,-1,0,0原创 2017-06-04 17:19:59 · 1432 阅读 · 0 评论