不能流视频
这里是我的videoview代码:不能流视频
Uri uri = Uri.parse(vidurl);
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.requestFocus();
videoView.setVideoURI(uri);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoView.start();
}
});
影片我尝试播放存储在我的服务器。他们使用自定义相机从同一个应用程序发送。下面是视频拍摄参数:(万一出了什么错的,我想尽组合,VP8格式做流,除了输出了无音讯,并侧身旋转)
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) {
mMediaRecorder.setOrientationHint(90);
} else {
mMediaRecorder.setOrientationHint(270);
}
mMediaRecorder.setVideoSize(list.get(sizex).width, list.get(sizex).height);
mMediaRecorder.setVideoEncodingBitRate(1500000);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setMaxDuration(15000);
mMediaRecorder.setOutputFile(getVidFile().getAbsolutePath());
我一直在努力很长一段时间解决这个问题,但我现在没有想法。我想在视频流中播放这些视频。但是,我不得不等待10-20秒。之后,无论视频开始播放还是播放视频都无法播放的错误。
其他信息:
项目最低SDK是18,但我可以改变它,如果这将有助于。
我的测试装置是华硕Zenfone 2(5.0)
我没有与任何其它设备
画存储在godaddy的Linux主机测试。 www.mydomain.com/videos/
视频编码H264 Baseline Profile的
的Moov原子是在顶部(fytp(或类似的东西)后),就像推荐
我尝试使用第三方视频像exomedia
一些视频播放器库做的工作,例如:
我检查了视频编码。它在h264 MAIN PROFILE中编码(从我的研究中,主要配置文件不支持大多数android设备,建议使用基线配置文件)而MOOV ATOM处于最后位置。但是这个视频播放得很好...... dafuq?
编辑:该作品是toystory视频性能:
这里是从我的应用程序与上面给出parameteres拍摄的视频(注意MOOV原子是在正确的地方,但这仍然不起作用)
当您的视频从服务器流到应用程序时,使用哪种网络协议? VideoView可能不支持您使用的网络协议。 VideoView仅支持有限的协议。 据 “支持的媒体格式的” Android文件:
以下网络协议都支持音频和视频播放:
--RTSP(RTP,SDP)
--http/HTTPS渐进流 --http/HTTPS协议直播流媒体草案:
MPEG-2 TS media files only
Protocol version 3 (Android 4.0 and above)
Protocol version 2 (Android 3.x)
Not supported before Android 3.0
- 注:HTTPS的Android 3.1之前,不支持。
我不知道什么是网络协议。如何检查我正在使用哪一个? – user6650650
这是一个谷歌问题 – Christopher
再次检查您的问题后,我认为使用的网络协议是Progressive http.That应该不是问题。有类似于你的问题:http://*.com/questions/11540076/android-mediaplayer-error-1-2147483648和http://*.com/questions/4728085/cannot-play-certain-videos。他们的回答提到:“对于3GPP和MPEG-4容器,moov原子必须先于任何mdat原子,但必须成功ftyp原子。”在你的问题中,你提到你的配置文件是“Moov原子在顶部(在fytp之后(或类似的东西))”。也许这就是问题所在。 –
你发现任何错误?而不是使用videoview.start()使用mp.start() –
现在我尝试使用mediplayer使用surfaceview,而不是忘记调用prepareasync而不是prepare(),但仍然无法使用。 E/MediaPlayer:错误(1,-2147483648) – user6650650