上篇使用pipe播放流后,观看的同时,如需保存成文件,使用ffmpeg也是很方便的.
既然已经是标准H264了,那就不需要再编码,直接copy流再muxer
|
_______ ______________ ________ | | | | | | | input | demuxer | encoded data | muxer | output | | file | ---------> | packets | -------> | file | |_______| |______________| |________| |
代码原型请看这个这个回复,不过他的代码中,视频输出流的AVCodecContext
|
AVCodecContext *c; c = o_video_stream->codec; |
缺少了extradata,造成生成的MP4文件avcC没有SPS PPS信息而无法播放
添加如下代码
|
c->extradata = i_video_stream->codec->extradata; c->extradata_size = i_video_stream->codec->extradata_size; |
另外不需要两次打开输入流,完全是可以在播放开始后任意时间来控制开始保存文件.
使用mp4封装,在Android IOS上均可调用系统自带播放器播放