![](https://img-blog.csdnimg.cn/20190924165448201.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
h264
文章平均质量分 86
王二の黄金时代
碰到问题,就解决问题
展开
-
NDK中使用mediacodec解码h264
常见的都是在java层使用mediacode解码,给mediacode绑定surface直接解码渲染,为了配合ffmpeg现在想在native用ndk使用mediacode硬解码,解码直接输出yuv数据,只是单纯地需要一个解码器,不绑定surface. 百度百度出来的文章怎么就没有浅显易懂直接可用的呢?非要上来就讲那张mediacode官方图。。。我想,既然是demo, 就应该是小白直接可用,没有过多的架构设计最好是一个main函数到底,多好。自己折腾老半天终于弄出来个可以用的demo,一个在android原创 2021-01-23 14:50:05 · 4694 阅读 · 11 评论 -
libx264 编码参数调整--流媒体
在标题加了个后缀-流媒体。所以主要是借libx264来研究一下其中关于在流媒体场景中(低延时)偏向的设置,关于编码器 码率,图像效果等等这里面有好多参数,指不定有相互影响的参数,理解的不多,这里借鉴各处博客以及x264官方wiki和libx264源码,官方网站https://www.videolan.org/developers/x264.html(vlc 一家组织,去vlc官网即可,还可以找到wiki文档))记录下试水libx264-流媒体低延时编码的参数设置。环境: 5代corei...原创 2021-08-04 16:53:06 · 2034 阅读 · 0 评论 -
NDK中使用mediacodec编码h264
《Ndk中使用Mediacode解码》《android mediacodec 编码demo(java)》Ndk native c使用MediaCodec编码:(在ndk直接编译成可执行文件,push到设备上可运行)//canok 20210316 //NdkMediacodec.cpp#include<stdio.h>#include<stdlib.h>#include<string.h>#include<pthread.h>#inc.原创 2021-03-16 14:17:36 · 4479 阅读 · 5 评论 -
<三:使用,推流端>live555-从buffer读取h264推流
使用live555库推流h264,一般从testOnDemandRTSPServer.cpp 修改而来,不过其中都是通过从本地文件,或作类似文件描述符“fd”源中读数据,这类数据源,需要对数据源进行分析处理,拿h264裸文件来说,就需要根据NAL 00 00 00 01 来切分出一帧帧的数据,这是一个消耗资源的操作,如果我们是已经就绪的h264帧数据在内存里,就不需要这一部分,否则造成明显的推流延...原创 2019-12-12 14:38:18 · 3422 阅读 · 4 评论 -
android播放rtsp视频流app, demo app .使用live555+MediaCodec
用libvlc提供的库播放rtsp,总是延迟比较大(局域网的情况下,存在明显的画面延时),netcaching设置为0还是存在延迟,但是网络延迟已经比较低了,没办法,自己写了一个APP,现在只测试了接受一个视频流的rtp流,没有音频。延迟较低,总的播放延迟基本在网络部分。原理:1.0 解码播放端:使用android 的MediaCodec 播放h264流,先行使用h264裸流文件模拟网络流进行...原创 2019-09-23 18:04:28 · 8621 阅读 · 5 评论 -
vlc-添加自定义的demuxer解复用插件----播放h264裸文件
使用vlc3.0.6 在ubuntu 64bit上编译,vlc使用插件的方式组织对多种视频源的支持,比如 avi、mp4、mkv、等等,这里想添加一个自己的demuxer,从一个h.264文件中读h264数据,播放。(vlc并不支持直接播放h264裸流文件,至少这个v3.0.6版本是没有支持)一:添加一个demuxer模块:在moudle/demux 的makefile.am 中添加:...原创 2019-09-04 17:08:36 · 1690 阅读 · 0 评论 -
vlc读取rtsp流-源码分析---时间戳dts的计算
h264流中有两个概念,pts,dts: vlc源码分析--播放速度控制原理,pts,dts vlc 使用插件的形式开发,读取rtsp流时,会根据url地址解析,加载 liblive555_plugin.so 插件,作为demuxer使用,输入线程 (input.c 中)会调用 demuxer的 demux() 函数,驱动其解复用。liblive555_plugin.so的源码文件,在 /...原创 2019-09-02 15:23:48 · 2644 阅读 · 0 评论 -
h264测试文件--从h.264文件读取单独帧模拟视频流
测试服务器需要一个h264流,从h264文件读取流的函数实现: c语言版本注意需要h264文件开头即为00 00 00 01/******20190828 canok*** output: complete frames**/#include<stdio.h>#include<stdlib.h> #include <unistd.h>...原创 2019-08-28 18:10:10 · 5133 阅读 · 0 评论 -
《The H.264 advanced video compression standard》读书笔记-3.3 prediction model 预测模型
个人翻译:(这一篇详细讲述了为什么以块来进行预测,个人整理原文进行了翻译) 3.3 预测模型 这个模块的输入数据是当前帧或场的图像采样集,模块的目的是减少存储数据的冗余度,原理是通过对数据的进行预测,然后从当前的已知的输入数据中减去预测得到的数据,形成一个残差帧。得到这个相对小的差值数据进行输出以此减少数据的冗余。预测数据的依据可以是先前已经编码的帧(时间上预测)...原创 2019-03-28 23:57:07 · 495 阅读 · 0 评论 -
《The H.264 advanced video compression standard》读书笔记-3.3-3.4
3.3.2 Spatial model: intra prediction帧内预测: 如果图像样本是安装光栅扫描的顺序 进行编码的,当前块中相邻的上和左部分就是已经编码的并且可以被使用(编/解码器在这个时候都可以获取到这些数据)空间外推,如图3.24.并且相邻的图像块之间有高度的相关性,所以只需要使用 current block 紧邻的上/左两个部分的像素进行预测就可以获得一...原创 2019-04-05 11:36:28 · 644 阅读 · 0 评论 -
《The H.264 advanced video compression standard》读书笔记-3.2 video codec 模型原理
《The H.264 advanced video compression standard》读书笔记3.2 video CODEC本章节主要宏观介绍h264编码器的原理,介绍一些概念。英文版的原书,讲的很是清晰, 比一些只是罗列各种概念的书真的是好很多,建议看看英文版原书,慢慢翻译理解其中的意思效果比看翻译版强得多。下面是个人对原文的理解:一个视频编码器,主要由三部分功能组成...原创 2019-03-23 10:51:37 · 1075 阅读 · 0 评论 -
H264 视频码率
为什么同样的分辨率帧率视频 ,码率还不一样? 编码器压缩的度不一样,所以影响存储空间和网络上传输带宽占用。码率,也叫做比特率:视频比特率是指要播放该视频,所需要每秒读取的该视频文件的比特(bit)数。单位为bps(Bit Per Second),比特率越高,每秒读取数据就越多,同等条件下画质就越好。一个原生的视频,不进行编码压缩,要显示播放,每秒需要的bit数:一个 ...原创 2019-03-25 13:48:19 · 20207 阅读 · 0 评论