摘要:网络抽象层单元类型 (NALU):NALU头由一个字节组成,它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+F: 1个比特. forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.NRI: 2个比特. nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,如00的NALU解码器可以丢弃它而不影响图像的回放.Type: 5个比特. nal_unit_type. 这个NALU单元的类型.简述如下:0 没有定义 1
阅读全文
01 2014 档案
摘要:之前写过一篇文章,分析了h264使用rtp进行封包的格式介绍:RTP封装h264。但里面好像没有把拆分以及一些需要注意的情况说清楚,因此这里做补充,也作为自己的备忘(自己记性好像不太好)。关于时间戳,需要注意的是h264的采样率为90000HZ,因此时间戳的单位为1(秒)/90000,因此如果当前...
阅读全文
摘要:FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法【原创】RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法。1、单个NAL包单元12字节的RTP头后面的就是音视频数据,比较简单。一个封装单个NAL单元包到RTP的NAL单元流的RTP序号必须符合NAL单元的解码顺序。2、FU-A的分片格式数据比较大的H264视频包,被RTP分片发送。12字节的RTP头后面跟随的就是FU-A分片:FU indicator有以下格式: +---------------+ |0|1|2|3
阅读全文
摘要:在使用ffmpeg解码播放TS流的时候(例如之前写过的UDP组播流),在连接时往往需要耗费大量时间。经过debug发现是av_find_stream_info(已抛弃,现在使用的是avformat_find_stream_info)这个方法十分耗时,而且是阻塞的。av_find_stream_inf...
阅读全文
摘要:用实例分析H264 RTP payloadH264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved) 应用程序可以使用第一个字节来识别。 在SDP中也说明了本次会话的属性 SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流: . m= 行中的媒体名必须是 video . a=rtpmap 行中的编码名称必须H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。在SDP中也说明了本次会话的属性SDP 参数下面描述了如何在 S
阅读全文
摘要:一、有的手机不能直接接收UDP包,可能是手机厂商在定制Rom的时候把这个功能给关掉了。1、可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock;具体如下:WifiManager manager = (WifiManager) this .getSystemService(Context.WIFI_SERVICE);WifiManager.MulticastLock lock= manager.createMulticastLock("test wifi");2、在调用广播发送、接收报文之前先调用lock.ac...
阅读全文
摘要:android-ndk-r8d/build/core/build-binary.mk:41:***targetfile`clean'hasboth:and::entries.Stop.我也遇到了相同的问题,不过经过一步步排查,是因为在libavfilter目录中的Makefile的末尾处多了Clean这个玩意儿将其注释掉或者删掉就可以了恢复改方法/libavutil/libm.h:183:40: error: static declaration of 'truncf' follows non-static declarationlibm.h的static方法删除掉/*
阅读全文
摘要:#!/bin/bashNDK_ROOT=/home/wjh/fox/android-ndk-r9c/PREBUILT=${NDK_ROOT}toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64PLATFORM=android-14ARCH=--arch=arm./configure --target-os=linux \--arch=arm \--disable-static \--enable-shared \--enable-version3 \--enable-gpl \--enable-nonfree \--disable
阅读全文
摘要:开发android ndk 的时候需要一个编译工具编译c程序,ndk需要linux下编译,所以win环境下提供Cygwin模拟linux编译Candroid-ndk 较低版本的这个工具的配置网上很多,我这儿记述点android-ndk-r7b下配置Cygwin的步骤:1.到Cygwin的官方网站下载Cygwin的安装程序,地址是:http://www.cygwin.com/setup.exe2.运行下载的setup.exe,3.到选包的时候注意下,下图中圈中的必须安装,否则没有gcc工具无法编译4.安装好后运行Cygwin,检查gcc,make工具是否安装命令:gcc -v内容大致如上,ok,
阅读全文
摘要:基于Android的点对点视频通信/RTSP/RTP/H.264http://blog.csdn.net/cazicaquw/article/details/8650543历经万难,终于搞定Android下的使用FFMPEG成功对H.264视频流解码http://blog.csdn.net/cazicaquw/article/details/8435034https://code.google.com/p/spydroid-ipcamera/H264参数结构一:元素的分层结构http://blog.csdn.net/jwybobo2007/article/details/7236234ffmp
阅读全文
摘要:protoc.exe -I./proto文件目录 --java_out=java文件目录 proto文件基于文件目录的全路径protoc.exe -I./protoFolder --java_out=./javaoutFolder onevo/Test.proto
阅读全文
摘要:首先,我们需要一个keystore,当然已经有了的话就不用这一步了:cmd下:进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文件C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genk...
阅读全文