Android 视频直播

本文介绍了在Android平台上实现视频直播的解决方案。通过使用libstreaming库采集数据,并将其传输到Wowza Streaming Engine流媒体服务器,另一端使用VLC进行播放。详细阐述了Android采集端的配置、流媒体服务器的搭建过程以及播放端的设置,提供了关键步骤和所需资源的下载链接。
摘要由CSDN通过智能技术生成

前言:

鉴于工作需要,需要在Android 平台上开发一个视频直播功能的模块,所以,几经波折,找到了其解决办法,虽不是那么完美,但至少有些小成,当然,在此

感谢网上热心人的分享,下面就说一下其具体实现吧.....


总体思路:

Android 手机数据采集端用来采集视频数据,

然后传输给流媒体服务器,与此同时,

另一手机播放端通过VLC用来播放我们采集的视频


I>

Android 手机端1用来采集视频数据的思路:

在这里主要是借助网上已经写好的开源项目:libstreaming

首先我们将libstreaming以库的形式导入进工程中;

关于如何导入libstreaming,可以参考博客在Android Studio中如何导入工程库

导入libstreaming之后,编写如下代码用来进行数据的采集及预览显示:

CameraActivity:

package com.example.dai.Winbo.activity.About;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.View;

import com.example.dai.Winbo.R;

import net.majorkernelpanic.streaming.Session;
import net.majorkernelpanic.streaming.SessionBuilder;
import net.majorkernelpanic.streaming.audio.AudioQuality;
import net.majorkernelpanic.streaming.gl.SurfaceView;
import net.majorkernelpanic.streaming.rtsp.RtspClient;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CameraActivity extends AppCompatActivity implements RtspClient.Callback,
        Session.Callback, SurfaceHolder.Callback{

    // log tag
    public final static String TAG = CameraActivity.class.getSimpleName();

    // surfaceview
    private static SurfaceView mSurfaceView;

    // Rtsp session
    private Session mSession;
    private static RtspClient mClient;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.
一: 使用javacv来实现,最终也是用过ffmpeg来进行编码和推流,javacv实现到可以直接接收摄像头的帧数据 需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可 javacv地址:https://github.com/bytedeco/javacv demo地址:https://github.com/beautifulSoup/RtmpRecoder/tree/master 二: 使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推流,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果 yasea地址(内置demo):https://github.com/begeekmyfriend/yasea 服务器 流媒体服务器我用的是srs,项目地址:https://github.com/ossrs/srs 关于srs的编译、配置、部署、在官方wiki中已经写的很详细了,并且srs同样是国内开发人员开源的项目,有全中文的文档,看起来很方便 这里有最基本的简单编译部署过程 Android直播实现(二)srs流媒体服务器部署 播放器 android端的播放使用vitamio,还是国内的开源播放器,是不是感觉国内的前辈们越来越屌了^~^! vitamio支持几乎所有常见的的视频格式和流媒体协议 vitamio地址(内置demo):https://github.com/yixia/VitamioBundle 这里使用的是yaesa库,先介绍一下直播实现的流程:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值