我在服务器上有.h264视频,如何解码该视频并在Android中播放?
我正在使用FFMPEG播放这些视频,但在FFMPEG样本中需要 来自SD卡的视频,可以成功播放视频。我正在使用 表面视图播放这些视频。我的问题是如何在android中播放来自amazon s3服务器的.h264视频?
提前致谢。
答案 0 :(得分:0)
将s3存储桶中的视频(文件)设为公开,
并使用该公共网址,它随处可见。
编辑
您可以使用VideoView。这是一个例子:
VideoView videoView = (VideoView) findViewById(R.id.videoView);
//Use a media controller so that you can scroll the video contents
//and also to pause, start the video.
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(Uri.parse(videoUrl));
videoView.start();
您应该使用此代码String url
提供URI(具有Uri.parse(url)
变量,其中包含视频的网址)。并且还要确定网址是否合适。同时为您的应用提供适当的权限(因为它使用互联网,您需要在您的应用<uses-permission android:name="android.permission.INTERNET" >
中添加Manifest.xml
。最后,您应该在您的应用中定义您的活动MediaPlayerActivity
应用Manifest.xml
您也可以使用MediaPlayer。 Android开发者网站有一个很好的教程here。
<强> H.264 强>
根据this,Android支持h.264基线配置文件播放。因此,您的h.264视频不是基线配置文件,也可能包含不受支持的音频。
你应该注意到有很多h.64口味,所以你应该查看你的视频文件:http://www.niallkennedy.com/blog/2010/07/h264-video.html
答案 1 :(得分:-1)
您需要确保您的H.264视频位于您的Android设备可以接受的编解码器中,否则您需要重新编码。
答案 2 :(得分:-1)
我已完成通过此代码解决我的问题可能会帮助您。
layout.xml
<VideoView
android:id="@+id/videoview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
.class
String FileUrl="decoded url";
MediaController mediacontroller = new MediaController(this);
mediacontroller.setAnchorView(videoView);
Uri video = Uri.parse(FileUrl);
videoView.setMediaController(mediacontroller);
videoView.setVideoURI(video);
manifesto.xml
permitions
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />