手把手教你带货直播源码实现直播功能,不依赖第三方SDK

先上图:

推流的手机

手把手教你带货直播源码实现直播功能,不依赖第三方SDK_直播

拉流的网页和VL播放器

手把手教你带货直播源码实现直播功能,不依赖第三方SDK_直播_02

拉流的手机客户端

手把手教你带货直播源码实现直播功能,不依赖第三方SDK_转载其他_03

下面开始实现手机直播功能
1.首先你要准备一份编译好的ffmpeg+x264库,我们打算软编码推流。 
如果你没有编译好的ffmpeg+x264库也没关系,我最后会提供带货直播源码,包含了这些。 

手把手教你带货直播源码实现直播功能,不依赖第三方SDK_转载其他_04
其中libnative-lib.so是我打包的采集推流的方法,使用方式如下

2.然后我们在建一个包 com.ws.ffmpegandroidcameralive,在这个包下写一个WSPlayer类。

public  class WSPlayer {
    static {
        System.loadLibrary("avutil-54");
        System.loadLibrary("swresample-1");
        System.loadLibrary("avcodec-56");
        System.loadLibrary("avformat-56");
        System.loadLibrary("swscale-3");
        System.loadLibrary("postproc-53");
        System.loadLibrary("avfilter-5");
        System.loadLibrary("avdevice-56");
        System.loadLibrary("native-lib");
    }

    public static native int initialize(int width,int height,String url);
    public static native int start(byte[] cameraData);
    public static native int stop();
    public static native int close();
}

带货直播源码
initialize(int width,int height,String url) 是初始化方法,三个参数分别是视频的宽,高,以及,推流的地址。

start(byte[] cameraData);开始推流,参数传入相机的NV21数据。

stop();停止推流。

close();关闭。

3.编写界面 

手把手教你带货直播源码实现直播功能,不依赖第三方SDK_直播_05

点击start开始推流

4.实现具体逻辑

activity中带货直播源码


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
...

 WSPlayer.initialize(mCamera.getParameters().getPreviewSize().width,mCamera.getParameters().getPreviewSize().height,"rtmp://192.168.9.135:1935/wstv/home");
 ...