之前有个基于java和jni共同实现的版本,juv需要授权,语音数据在java层和jni层不停互转。
这个版本,完全在jni层实现,java只处理方法调用和事件回调。
OpenSL ES,从API 9开始支持的技术,通过这个标准,Android已经完全可以在native层采集和播放音频。继续阅读
原创文章,转载请注明: 转载自贝壳博客
之前有个基于java和jni共同实现的版本,juv需要授权,语音数据在java层和jni层不停互转。
这个版本,完全在jni层实现,java只处理方法调用和事件回调。
OpenSL ES,从API 9开始支持的技术,通过这个标准,Android已经完全可以在native层采集和播放音频。继续阅读
原创文章,转载请注明: 转载自贝壳博客
要在 Microsoft Win32??平台上编译Nginx你需要:
编译步骤
在开始之前,你需要将Perl,Mercurial,MSYS bin目录加入PATH环境变量,也就是打开cmd,输入perl,hg,bash不会提示找不到命令.运行vcvarsall.bat或者叫Visual Studio命令提示(2010).继续阅读
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: 编译windows版nginx-rtmp-module
上篇使用pipe播放流后,观看的同时,如需保存成文件,使用ffmpeg也是很方便的.
既然已经是标准H264了,那就不需要再编码,直接copy流再muxer
1 2 3 4 5 |
_______ ______________ ________ | | | | | | | input | demuxer | encoded data | muxer | output | | file | ---------> | packets | -------> | file | |_______| |______________| |________| |
代码原型请看这个这个回复,不过他的代码中,视频输出流的AVCodecContext
1 2 |
AVCodecContext *c; c = o_video_stream->codec; |
缺少了extradata,造成生成的MP4文件avcC没有SPS PPS信息而无法播放
添加如下代码
1 2 |
c->extradata = i_video_stream->codec->extradata; c->extradata_size = i_video_stream->codec->extradata_size; |
另外不需要两次打开输入流,完全是可以在播放开始后任意时间来控制开始保存文件.
使用mp4封装,在Android IOS上均可调用系统自带播放器播放
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: FFmpeg取回标准H.264流后播放的同时存为MP4文件