ffmpeg(软)编码推流 - Android

-- ffmpeg推流:用到了ffmpeg库,以及编码视频的x264,编码音频的fdk-aac,推流使用的rtmp等
acc:RTMP的音频格式;flv: RTMP的视频格式;
-- 视频流中的几个参数:
public static final int NAL_UNKNOWN     = 0;
public static final int NAL_SLICE       = 1; /* 非关键帧 */    
public static final int NAL_SLICE_DPA   = 2;    
public static final int NAL_SLICE_DPB   = 3;    
public static final int NAL_SLICE_DPC   = 4;    
public static final int NAL_SLICE_IDR   = 5; /* 关键帧 */    
public static final int NAL_SEI         = 6;    
public static final int NAL_SPS         = 7; /* SPS */    
public static final int NAL_PPS         = 8; /* PPS */ 
public static final int NAL_AUD         = 9;
public static final int NAL_FILLER      = 12;

-- FFmpeg主要分为8大模块:
libavcodec:用于各种类型声音/图像编解码;
libavdevice:用于视频采集访问摄像头等
libavfilter:用做滤镜处理
libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;
libswresample:用于重采样;
libavutil:包含一些公共的工具函数;
libswscale:用于视频场景比例缩放、色彩映射转换;
libpostproc:用于后期效果处理;

-- Linux下ndk编译移植FFmpeg到Android平台- https://github.com/EricLi22/AndroidMultiMedia
Linux下FFmpeg编译以及Android平台下使用—源码v1.0
Android平台下使用FFmpeg进行RTMP推流(视频文件推流)—源码v1.1
Android平台下使用FFmpeg进行RTMP推流(摄像头推流)—源码v1.2.1
Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)—源码v1.3
Android平台下RTMPDump的使用—源码v1.4
Android RTMP推流之MediaCodec硬编码二(RTMPDump推流)-源码v1.5
MediaCodec进行AAC编解码(文件格式转换)-源码v1.6
MediaCodec进行AAC编解码(AudioRecord采集编码)-源码v1.7

FFmpeg 推流手机摄像头,实现直播- https://github.com/979451341/RtmpCamera
Android中使用ffmpeg编码进行rtmp推流- https://www.jianshu.com/p/f3a55d3d1f5d
ffmpeg编码RiemannLeeLiveProject- https://github.com/liweiping1314521/RiemannLeeLiveProject
Android利用ffmpeg推流- https://github.com/WritingMinds/ffmpeg-android-java

猜你喜欢

转载自blog.csdn.net/ShareUs/article/details/83051214