直播技术初探_第1张图片

Github上的优秀流媒体开源项目
https://www.jianshu.com/p/879dceef68bc

一、直播

Android直播相关技术 从0搭建直播系统
https://blog.csdn.net/sunzhenjie9108/article/details/78613650

Android直播实现 Android端推流、播放
https://www.cnblogs.com/endv/p/7487685.html

https://www.cnblogs.com/yiweiaimeng/p/7811303.html

一、搭建直播流接收的服务器
1)采用nginx服务器
视频直播点播nginx-rtmp开发手册中文版
https://blog.csdn.net/kevinw9/article/details/52984826

                   安装:https://www.cnblogs.com/Leesttee/p/8193389.html
                     搭建rtmp服务器:https://blog.csdn.net/boonya/article/details/78663675
                     (主要是配置nginx-win-rtmp.conf文件)

            rtmp {
                server {
                      listen 1935;                      //端口
                        chunk_size 4000;
                        application live {              //live即相当于action
                                 live on;
                                 hls on;
                                 hls_path /temp;
                                 hls_fragment 5s; 
                        }
                }
            }

     那么客户端的rtmp的推流地址格式即为:
         rtmp://服务器IP:端口/live/自定义一个字符串

                     平台推流演示:https://www.jianshu.com/p/b4ee6956d1ea

                     android推流工具:易-live   (手机推流测试,需要开启手机的热点,电脑连上手机热点)

                   亲身测试过,上述方案可以成功实现推流。
            2)android代码实现推流
  • Android平台下使用FFmpeg进行RTMP推流(摄像头推流)
    https://www.jianshu.com/p/462e489b7ce0
  • Android平台下使用FFmpeg进行RTMP推流(摄像头推流)

                     开源库librtmp编译过程http://www.pvale.com/EasyPusher.html
    
                     https://blog.csdn.net/linchengchun/article/details/78962664
    
                  轻量级别的开源库: https://github.com/ant-media/LibRtmp-Client-for-Android  (用不了,也没有说怎么用)
    
                        https://blog.csdn.net/fzl562410663/article/details/73018315   (OPENGL实现)
    
                        http://www.pvale.com/  (流媒体方案商)
                             收费标准:http://www.pvale.com/EasyPusher.html
    
                   https://github.com/wlanjie/AndroidFFmpeg   (推流亲测可用
                     封装的比较好,推流与编码解耦。但是有时VLC播放不了,而且坚果手机推流没有声音
                     )
    
                    * ###########FFmpeg编译###################
                    所有的一些推流的SDK无非就是通过FFMPEG编译生成librtmp.so,然后使用jni构建自己的so库。
                    https://trac.ffmpeg.org/wiki/CompilationGuide/Android
                    https://www.jianshu.com/p/f3a55d3d1f5d/   (ffmpeg实现推流)
    
                  https://github.com/begeekmyfriend/yasea

二、Android平台搭建服务器

    * mtk android内置nginx服务器的方法
        https://blog.csdn.net/zangcf/article/details/41596963

    * android视频录制、另一部手机实时观看方案
        https://blog.csdn.net/j20lin/article/details/52066069

    * Linux上用nginx搭建RTMP服务器
        https://blog.csdn.net/liukang325/article/details/53262133

    * kuaixiangai/Android-aac-rtmp: 使用FFmpeg做语音直、点播方案。使用RTMP进行推流,同时搭建nginx+rtmp+hls服务器

https://github.com/kuaixiangai/Android-aac-rtmp

  • 牛人对RTSP的android实现
    https://blog.csdn.net/pkueecser/article/details/7400085

            找了一下rtmp服务器搭建的教程,几乎为0.而rtsp服务器比较多。
    
             https://github.com/EasyDarwin/EasyIPCamera  (收费)
    
             ***************libstreaming***********************
         https://github.com/fyhertz/libstreaming-examples#example-3  (没有测试通,是eclipse项目,需要转换)
    
            https://my.oschina.net/u/1774064/blog/282840  (怎么使用libstreaming)
    
        1) 注意exam1的surfaceview,最早是没有画面的,只有客户端连接上了服务器才会显示画面。
         2)关于IP地址,如果是服务器连接了客户端的wifi,就用wifimanager获取ip。
              如果是服务器开启了wifi热点,客户端连接wifi热点,ip地址就是192.168.43.1

三、实时观看行车记录仪视频
行车记录仪将视频MP4转成RTSP/RTMP流发送给服务器,服务器再转发给APP。

其他资料:
直播SDK(https://blog.csdn.net/King1425/article/details/79392158)
https://github.com/daniulive/SmarterStreaming

         https://github.com/EasyDSS/EasyRTMP-Android  (专业直播SDK)

         将EasyRTMP_RTSP移植到Android平台实现的RTSP拉流转推RTMP直播流功能 - CSDN博客(https://blog.csdn.net/xiejiashu/article/details/73294101)
            GitHub - jinlong0813/EasyRTMP_RTSP: 基于Android手机、设备拉取远程RTSP流到本地,再转成RTMP,推送到RTMP服务器。其他平台RTSP转RTMP参考https://github.com/EasyDarwin/EasyRTMP 。此Demo涉及到EasyRTMP和EasyRTSPClient两个SDK的商业授权。(https://github.com/jinlong0813/EasyRTMP_RTSP) 
            Android视频直播的实现(推流完整实现001) - CSDN博客(https://blog.csdn.net/stn_lcd/article/details/56012437)
            RTMP推流及协议学习 - CSDN博客(https://blog.csdn.net/lory17/article/details/61916351)

            https://github.com/spex66/RTSP-Camera-for-Android

        展现Android硬编码下的视频数据流动,可以对视频做处理,例如加滤镜,加水印等,做直播推流(用RTMP)
        https://github.com/ChillingVan/AndroidInstantVideo

二、录像

  • GitHub - qq542391099/CameraSurfaceView-master: 拍照,录像,闪光灯,摄像头切换,前后台切换于一体的SurfaceView
    https://github.com/qq542391099/CameraSurfaceView-master

  • Android--MediaRecorder录音录像 - 承香墨影 - 博客园
    https://www.cnblogs.com/plokmju/p/android_MediaRecorder.html
  • 本地录制Mp4,图片抓拍jpg,时间水印
    https://github.com/jiangdongguo/AndroidRecordMp4

三、音视频处理

  • Android音视频处理之MediaMuxer - 简书
    https://www.jianshu.com/p/aeadf260258a

  • MediaCodec图文详解
    https://www.cnblogs.com/renhui/p/7478527.html
    https://www.cnblogs.com/roger-yu/p/5635494.html

    https://www.cnblogs.com/1992monkey/p/7110751.html
    https://blog.csdn.net/k_bb_666/article/details/79175510

    https://www.cnblogs.com/Sharley/p/5964490.html

*使用MediaCodec和RTMP做直播推流
https://blog.csdn.net/fzl562410663/article/details/73018315

  • RGBA、YUV色彩格式及libyuv的使用
    https://blog.csdn.net/junzia/article/details/76315120
  • Android Camera的预览回调接口PreviewCallback使用
    https://blog.csdn.net/lb377463323/article/details/53338045
  • Android 使用mediaRecorder 录像时, onPreviewFrame 不回调
    https://segmentfault.com/q/1010000015446587

  • Android视频编辑器(五)音频编解码、从视频中分离音频、音频混音、音频音量调节等
    https://blog.csdn.net/qqchenjian318/article/details/78586371
  • byte[]与ByteBuffer相互转化 - CSDN博客
    https://blog.csdn.net/programmer_at/article/details/51125808

  • 对最近Android项目中的视频编解码的总结
    https://blog.csdn.net/feifeiwendao/article/details/52527824

  • 音视频编码实例(亲测可用)
    https://blog.csdn.net/junzia/article/details/54018671

  • android中AudioRecord使用详解
    https://blog.csdn.net/qq_36982160/article/details/79383046

  • Android音频开发之AudioRecord录音实现
    https://www.cnblogs.com/whoislcj/p/5477216.html

  • Android 音频播放——AudioTrack直接播PCM、MediaPlayer播媒体文件可以是audio
    https://www.cnblogs.com/stnlcd/p/7151438.html

  • ByteBuffer的使用
    https://blog.csdn.net/bzlj2912009596/article/details/75581675

四、编码格式

  • AAC的ADTS头文件信息介绍
    https://blog.csdn.net/jay100500/article/details/52955232/

  • 使用librtmp进行H264与AAC直播
    https://www.cnblogs.com/lidabo/p/7196707.html

https://blog.51cto.com/billhoo/1557646

五、Camera

  • 原Android Camera原始帧格式转换 —— 获取Camera图像(一)
    https://blog.csdn.net/zxccxzzxz/article/details/52282196

  • Android: Camera相机开发详解(中) ——实现预览、拍照、保存照片等功能
    https://www.jianshu.com/p/e20a2ad6ad9a

  • android 调用Camera,获取预览帧中的图像
    https://blog.csdn.net/u013869488/article/details/49853217

六、视频裁剪

  • Android 使用mp4parser进行视频的分割与合并
    https://blog.csdn.net/u012027644/article/details/53885837
    https://blog.csdn.net/u014691453/article/details/53256605

*FFmpeg实现视频裁剪
https://www.jianshu.com/p/2cf527f2129f