我有一台DVR作为连接到相机的服务器。我试图将相机的视图流式传输到我的Android手机中。我设法通过局域网完成了这项工作,但是通过3g /蜂窝
我已经完成了
端口转发
使用DynDNS
第三方应用程序称为MEye(仅适用于我的应用程序)
这是代码
public class liveActivity extends Activity{
final static String USERNAME = "admin";
final static String PASSWORD = "";
public static String domainName = "xxx.dvrdns.org";
public static int PORT = 2218;
public static final String URL = "rtsp://192.168.0.xxx:554/user=" + USERNAME + "&password=" + PASSWORD + "&channel=1&stream=0.sdp?";
public static final String URL2 = "rtsp://" + domainName + ":" + PORT + "/user=" + USERNAME + "&password=" + PASSWORD + "&channel=1&stream=1.sdp?real_stream--rtp-caching=100";
private MediaPlayer mPlayer1;
private MediaPlayer mPlayer2;
SurfaceHolder.Callback mCallback1;
SurfaceHolder.Callback mCallback2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live);
mPlayer1 = new MediaPlayer();
mCallback1 = new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
try {
mPlayer1.setDataSource(liveActivity.this, Uri.parse(URL2));
mPlayer1.setDisplay(surfaceHolder);
mPlayer1.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mPlayer1.start();
}
});
mPlayer1.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
mPlayer1.release();
}
};
final SurfaceView surfaceView1 =
(SurfaceView) findViewById(R.id.surfaceView1);
// Configure the Surface View.
surfaceView1.setKeepScreenOn(true);
// Configure the Surface Holder and register the callback.
SurfaceHolder holder1 = surfaceView1.getHolder();
holder1.addCallback(mCallback1);
holder1.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
P.S我从一位软件工程师那里听说RTSP仅供本地使用。这就是为什么我不能通过3g流式传输?
答案 0 :(得分:0)
这是一个老问题,但以防万一......
鉴于您的解决方案是在局域网中工作,大概是通过WiFi,这种方法本身听起来不错。
您最有可能遇到的问题是,您的移动电话网络提供商不支持上传,下载或同时支持RTSP流。
这些类型的限制在移动网络中并不少见 - 例如,一些运营商用来阻止所有上行链路流媒体协议以避免VoIP服务。