FFmpeg 总结(十三)用 ffmpeg 基于 nginx 实现直播功能,推流拉流

2,039 阅读1分钟

图:曼谷

直播app实现流程

  • 1.采集

  • 2.滤镜处理

  • 3.编码

  • 4.推流

  • 5.CDN分发

  • 6.拉流

  • 7.解码

  • 8.播放

  • 9.聊天互动

图像格式:

  1. public static final int DEPTH16 = 1144402265;

  2. public static final int DEPTH_POINT_CLOUD = 257;

  3. public static final int FLEX_RGBA_8888 = 42;

  4. public static final int FLEX_RGB_888 = 41;

  5. public static final int JPEG = 256;

  6. public static final int NV16 = 16;

  7. public static final int NV21 = 17;

  8. public static final int PRIVATE = 34;

  9. public static final int RAW10 = 37;

  10. public static final int RAW12 = 38;

  11. public static final int RAW_PRIVATE = 36;

  12. public static final int RAW_SENSOR = 32;

  13. public static final int RGB_565 = 4;

  14. public static final int UNKNOWN = 0;

  15. public static final int YUV_420_888 = 35;

  16. public static final int YUV_422_888 = 39;

  17. public static final int YUV_444_888 = 40;

  18. public static final int YUY2 = 20;

  19. public static final int YV12 = 842094169;

直播app架构:

项目结构:

手机推流直播:

其他客户端拉流播放: 
这里用vlc,及ijkplayer进行拉流,效果如下:

生成头文件: 

ndk编译so文件:(yuiopLiveFFmpeg,为什么加yuiopLive,因为我的网名id叫:逆流的鱼yuiop)

genymotion先测试访问nginx服务器:

为什么是192.168.56.1,而不是10.0.2.2(Android自带模拟器),因为genymotion是基于VirtualBox上运行的。它的宿主就是VirtualBox。


第一时间获得 不止个人原创 android/音视频技术干货,问题深度总结,FrameWork源码解析,插件化研究,FFmpeg研究,直播技术,最新开源项目推荐,还有更多职场思考 ,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码