gpt4 book ai didi

android - 谷歌眼镜将视频流式传输到服务器

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:22 26 4
gpt4 key购买 nike

我正在尝试为 Google Glass 构建一个可以流式传输到服务器并让客户端通过网络浏览器查看流的应用程序。到目前为止,我似乎需要通过 RTSP 到媒体服务器(例如 Wowza)来执行此操作,然后有一个 Web 服务器托管一些查看 RTMP 流的视频播放器,但我运气不佳。

使用 libstreaming ( https://github.com/fyhertz/libstreaming ) 我永远无法查看流。

我也有兴趣使用 WebRTC 做一些事情,这样我就可以做出类似于 Hangouts 的解决方案,但我不确定是否有任何库支持它。

感谢任何帮助。

最佳答案

自 1 月以来,libsreaming 已被修复以在 Glass 上运行。它的 RTSP 视频可以在 VLC 播放器或插件中轻松查看。下面的代码不包括自动生成的 stub 。

public class MainActivity extends Activity implements SurfaceHolder.Callback, Session.Callback {

private int mRtspPort = -1;

private ServiceConnection mRtspServerConnection = new ServiceConnection() {

private static final int RTSP_PORT = 1234;

@Override
public void onServiceConnected(ComponentName className, IBinder binder) {
RtspServer s = ((RtspServer.LocalBinder) binder).getService();
s.setPort(RTSP_PORT);
mRtspPort = s.getPort();
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);

// Configures the SessionBuilder
SessionBuilder.getInstance()
.setSurfaceView((SurfaceView) findViewById(R.id.surface))
.setCallback(this)
.setPreviewOrientation(90)
.setContext(getApplicationContext())
.setAudioEncoder(SessionBuilder.AUDIO_NONE)
.setVideoEncoder(SessionBuilder.VIDEO_H264)
.setVideoQuality(new VideoQuality(320, 240, 20, 500000));

// Starts the RTSP server
bindService(new Intent(this, RtspServer.class), mRtspServerConnection, Context.BIND_AUTO_CREATE);
}

@Override
public void onResume() {
super.onResume();
mResumed = true;
displayConnectString();
SessionBuilder.getInstance().getSurfaceView().setAspectRatioMode(SurfaceView.ASPECT_RATIO_PREVIEW);
SessionBuilder.getInstance().getSurfaceView().getHolder().addCallback(this);
}

private void displayConnectString() {
WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipAddress = Formatter.formatIpAddress(ip);
((TextView) findViewById(R.id.connectInfo)).setText("rtsp://" + ipAddress + ":" + mRtspPort);
}

@Override
public void onDestroy() {
super.onDestroy();
unbindService(mRtspServerConnection);
}

@Override
public void onSessionStarted() {
((TextView) findViewById(R.id.connectInfo)).setText("");
}

@Override
public void onSessionStopped() {
displayConnectString();
}
}

关于android - 谷歌眼镜将视频流式传输到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21223277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com