A. android 怎么播放rtsp流
package com.video.rtsp;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.VideoView;
public class rtspActivity extends Activity {
/** Called when the activity is first created. */
Button playButton ;
VideoView videoView ;
EditText rtspUrl ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rtspUrl = (EditText)this.findViewById(R.id.url);
playButton = (Button)this.findViewById(R.id.start_play);
playButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
PlayRtspStream(rtspUrl.getEditableText().toString());
}
});
videoView = (VideoView)this.findViewById(R.id.rtsp_player);
}
//play rtsp stream
private void PlayRtspStream(String rtspUrl){
videoView.setVideoURI(Uri.parse(rtspUrl));
videoView.requestFocus();
videoView.start();
}
}
B. 手机想看rtsp流媒体视频,路由器端口映射该如何设置
设置方法:
1、可以进入路由器,既然的手机能连到路由器,那就在路由器里面肯定有IP地址,找到并记下来。
2、不能看rtsp 协议的流媒体,那有2种可能,要么路由给过滤掉了,要么路由不支持。
3、可以进入到--转发规则--DMZ主机(这里以TP-LINK无线路由为例)--选择启用--输入手机设备的IP--保存并重启路由。
C. ijkplayer支持rtsp吗
ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放。支持Android&iOS。
ijkplayer的编译这里不多阐述,我也是直接获取别人编译完成的so库文件,直接使用的。如果你对ijkplayer的编译感兴趣,可以网络一下,有很多文章。
使用ijkplayer
导包
ijkplayer源码官方下载地址:https://github.com/Bilibili/ijkplayer
上面是官方提供的ijkplayer的源码地址,但是它是没有编译过的。下面我给大家分享一份编译好的ijkplayer源码,由于比较大,分了三个包才上传完成,需要三个包都下载后才能一起解压:
编译好的ijkplayer.part1
编译好的ijkplayer.part2
编译好的ijkplayer.part3
我们下载完成,进入android/ijkplayer目录:
ijkplayer-java:ijkplayer的一些操作封装及定义。这里面是通用的API接口,里面最主要的是IMediaPlayer,它是用来渲染显示多媒体的。
ijkplayer-exo:google开源的一个新的播放器ExoPlayer,在Demo中和ijkplayer对比用的。通过安装ijkplayer可以发现setting里面可以选择不同player来渲染多媒体显示,该模块下面就是一个MediaPlayer。
ijkplayer-example:测试程序
ijkplayer-{arch}:编译出来的各个版本的.so文件。
官方提供的Demo的代码还是挺多的,甚至还用了otto,需要对官方的demo进行精简,去除一些用不到的代码。
首先需要的是ijkplayer-{arch}、ijkplayer-Java两个库。exo是Google提供的新的播放器,这里不需要,直接砍掉。其次是ijkplayer-example里的,我们需要的只有tv.danmaku.ijk.media.example.widget.media包下的部分类。
注:
链接库ijkplayer-arm64,ijkplayer-armv5,ijkplayer-armv7a,ijkplayer-x86,ijkplayer-x86_64是不同体系架构的动态链接库,在当前工程结构里面作为一个模块,如果不想做兼容多平台问题,可以删除其他目录结构,单独保留自己需要的平台目录。
新建一个工程:
(1)把ijkplayer-armv7a/src/main/libs下的文件拷贝到新工程app目录的libs下。
(2)把ijkplayer-java/build/outputs/aar/ijkplayer-java-release.aar复制到新工程app目录的libs下。
(3)修改APP下的build.gradle, 主要设置.so及.aar的位置:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.hx.ijkplayer_demo"
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs'] /**在libs文件夹下找so文件*/
}
}
}
repositories {
mavenCentral()
flatDir {
dirs 'libs' /**在libs文件夹下找aar文件*/
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', mole: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
compile(name: 'ijkplayer-java-release', ext: 'aar') /**编译ijkplayer-java-release.aar文件*/
}
(4)复制ijkplayer-example下面的tv.danmaku.ijk.media.example.widget.media到新的工程,删掉一些不需要类。
(5)IjkVideoView里面还是有很多如exo等没用的东西,删!具体可以参见我后面的Demo。
(6)Manifest
...
<activity android:name=".MainActivity"
android:screenOrientation="sensorLandscape"
android:configChanges="orientation|keyboardHidden">
...
</activity>
...
<uses-permission android:name="android.permission.INTERNET"/>
D. 移动流媒体的简介
移动流媒体是在移动设备上实现的视频播放功能,一般情况下移动流媒体的播放格式是3GP格式,智能手机(Symbian、windows phone、android、iOS等)越来越多在这些手机上可以下载流媒体播放器实现流媒体播放
另外,有些非智能手机也可以实现流媒体,诺基亚大多数非智能机都有流媒体播放器。
移动流媒体播放的视频一般是rtsp//: 开头,这种网站还不是很多,因为国内网络不是很完善,只有少数网站有,用户可登陆移动梦网或wap.cctv. com收看这种网络视频,不过网络包月流量相对看电影的话,是远远不够的,不过相信不久的将来人们都可以实现手机看电视。
E. android mediaplay 怎么播放 rtsp /http 流媒体
但是网络电台的连接就是没有扩展名的,在PC 上的media play 都可以播放的
F. 如何在Android实现一个流媒体服务器
现在,越来越多的朋友用上了宽带,如果仅仅只是将宽带用来下载软件、观看电影,那未免太浪费了。假如你的机器性能还不错的话,是否设想过将它架设为一台流媒体服务器。这样就可以与亲朋好友共享美妙的音乐或最新的电影,那种网络DJ的感受可真是无与伦比呀。 就现在的主流计算机硬件而言,搭建一台网络流媒体服务器应该没有什么困难,只要满足Pentium III 450MHz、256MB内存容量、足够的硬盘空间即可。但如果你还没有用上宽带,那么还是放弃吧,否则那时断时续的传播质量会让朋友们骂死你。
架设网络流媒体服务器
所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看、收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。目前,在这个领域中的竞争者主要有微软、RealNetworks、Apple三家公司,例如微软新近发布了Windows Media Services 9、RealNetworks公司新近发布的Helix Platform、Apple新近发布的Darwin streaming server 4.1,意图在流媒体领域大干一场。
一般来说,一个完整的流媒体服务系统需要三个部分组成:编码器、流服务器和播放器。编码器通过对内容来源(如MP3文件或者麦克风输入)进行编码,并将编码过的内容发送到流服务器;流服务器再将它们发布到Internet,这样客户端的播放器只要连接到流服务器就可以进行在线播放了。
利用Winamp架设MP3网络电台
当我们静静地在欣赏美妙的MP3音乐时,你是否曾经考虑过将这些原本属于个人的MP3音乐通过网络在局域网内进行发布,甚至还可以通过Internet进行发布?这样就可以让遍布世界的朋友们与你一起共享MP3音乐之旅。其实,要做到这一点并不难,你只要将本机创建为一台MP3流媒体服务器,将自己所喜爱的MP3音乐不停播放,然后通知朋友们访问你的这台MP3服务器就可以了。
说起MP3的播放,使用最广泛的莫过于Winamp了。对于MP3流媒体服务这个领域,Winamp的开发者Nullsoft公司当然不会放弃,专门发布了面向MP3的流服务器SHOUTcast Server。虽然它的功能没有Windows Media Server和Real Server强大,但它不仅对硬件的要求极低,更关键的是完全免费,使用起来没有后顾之忧。另外你还需要下载一个名为SHOUTcast DSP Plug-in的插件,只有安装了这个不起眼的插件,Winamp才能支持流媒体服务。
首先打开Winamp(请注意版本号必须在2.22以上),切换到“Options” | “Preferences”| “DSP/Effect”标签页,选中“Nullsoft SHOUTcast Source DSP v1.8.2a[dsp_sc.dll]”下的“Configure”按钮。打开“SHOUTcast Source”窗口,选择“Output”标签页,如图1所示,在“Address”栏内填入本机的IP地址。如果你想在Internet上广播MP3音乐,则必须键入本机的外部IP地址,然后就可以从程序组中运行SHOUTcast DAAS(GUI)程序以启动SHOUTcast服务。这时系统会自动连接到http://yp.shoutcast.com服务器,接下来请返回图1窗口点击“Connect”按钮。如果连接成功,该按钮会变为“disconnect”字样,这样我们就完成了在本机架设MP3流服务器的全部过程。
架设REAL格式的视频点播中心
如果是架设视频点播服务器,那么选择Real格式是非常明智的。因为RealProcer Plus这款功能强大的软件操作相当简单,每次使用时会弹出一个向导对话框进行操作提示。目前最新版本是10.0,我们只要选择8.5.1以上的版本即可。
从“工具”菜单下选择“创建网页”命令,此时会弹出一个如图2所示的向导式对话框,点击“前进”按钮选择你希望用于创建Web页面的Real多媒体文件。随后RealProcer会询问是创建“弹出式播放器”还是“嵌入式播放器”,一般建议选择后者,因为这样所需要的系统资源更低,当然启动速度也更快。至于播放器的界面,可以选择“标准播放器”,很快就可以创建成功。
最后,RM文件对象所在的目录会增加一些文件,请将这些文件与RM对象一起上传,不过要注意保证RM文件与HTML文件在同一目录下,否则播放器可能无法找到播放对象。
架设WMP流媒体服务器
微软的手伸得很长,什么领域都要插足一下。凭借着Windows操作系统的影响力,Windows Media Player市场占有率越来越高,而微软的*.asf、*.wmv、*.wma、*.avi等格式也开始被越来越多的用户所接受。
架设WMP流媒体服务器,你需要安装Windows Media Encoder才行,目前最新版本是9.0简体中文版。如图3所示,我们应该在这里选择“广播实况事件”,接着选择用来编码的音频和视频设备。注意请事先将音频和视频设备与计算机正确连接,否则会无法检测到。接着你还需要指定服务和发布点,当然也可以使用现有的发布点。然后Windows Media Encoder会自动创建服务器,并给出HTTP连接地址与局域网内部地址,请记住这些内容,最后点击“开始”按钮正式启动WMP流媒体服务器。
接下来,我们就可以将刚才记下的HTTP连接地址与局域网内部地址告诉给朋友们。他们只要打开IE,输入正确的IP地址和端口号,很快就可以访问WMP流媒体服务器。
架设QT流媒体服务器
平时,我们见到的大多是打造MWF(矢量地图窗口文件,Map Window File)或RM流服务器,可是你可知道QuickTime(以下简称QT)流媒体服务器应该如何来打造吗?其实,借助苹果的QuickTime Streaming Server工具,我们可以在短时间内快速打造出一台QT流服务器。
首先我们要准备一些工具,QuickTime媒体播放工具当然是必不可少的。目前最新版本是6.5简体中文版,到处都可以找到,或者直接到苹果公司的网站下载,并且需要在服务器和客户端同时安装。Perl语言解析器,最低版本要求是5.0以上。QuickTime Streaming Server与用户见面最早是在1999年,当时以其开放源代码和基于标准的实时传输协议/实时流协议(RTP/RTSP)引擎深深地动摇了流媒体工业的基础,目前的最新版本是5.0,下载文件共9.2MB。
从http://developer.apple.com/darwin/projects/streaming/地址可以免费下载,但你必须拥有Apple的注册用户名才能登录(注册是免费的),这里有Mac OS X、Red Hat、Solaris、Windows NT/2000/XP等版本可供选择。下载回来的是一个自解压文件,释放后执行Install.bat运行安装程序,运行过程在命令提示符窗口中完成,最后还需要设置登录用户名、密码,如图4所示,当看到“Setup Complete!”的提示信息时即大功告成。QT流媒体服务器建设过程和RM类似,在这里就不再赘述。
如何共享音频和视频
共享音频
前面,我们利用Winamp、SHOUTcast Server将本机架设为一台MP3流服务器,那么该如何让遍布天南海北的朋友或局域网中的同事欣赏这些美妙音乐呢?
这有两种方法:一种是打开Winamp,从“Play”菜单下选择“Location”命令,或者直接键入“Ctrl-L”组合键打开一个对话框,然后在这里键入MP3流服务器的URL地址或者IP地址、端口号(缺省为8000),例如“http://192.168.0.1:8000”或者“http://61.277.1.24:8000”即可收听;另一种方法则更为简单,从IE中打开“http://192.168.0.1:8000”进入Web管理页面,如图5所示,然后点击“收听”按钮就可以在线收听MP3流音乐。
共享视频
虽然苹果的QuickTime Player的市场占有率远远不如Real或Windows Media Player,但忠实的用户依然不少。而且苹果毕竟是网络流媒体的开山鼻祖,因此许多最新大片都是采用QT格式。
首先必须在机器上启动QT服务,然后通知朋友们在远程计算机中打开QuickTime。从“文件”菜单中选择“在新的播放窗口中打开URL”命令,键入“rtsp://server/file.mov”来访问QT流服务器以实现远程播放。这里的“server”是服务器的IP地址,“file.mov”是媒体文件名,默认的RTSP传输端口是554端口。如果网络连接没有什么问题的话,如图6所示,那么你很快就可以连接成功。
建立播放列表或点播系统
辛辛苦苦架设了一台流媒体服务器,我们还可以建立播放列表或点播系统,甚至可以进行网络直播,反正已经用上了宽带,不用也是浪费。
配置QT流媒体服务器
打开IE,在地址栏中输入“http://server:1220”,这里的“server”代表服务器的IP地址。如果前面的配置没有什么问题的话,很快就会进入如图7所示的管理页面,这里以列表形式显示了当前的系统资源占用情况和相关的服务器信息。我们可以在这里查看连接到服务器的用户类型、IP地址、数据速率、数据传输量、包丢失比例、连接时间、连接文件等内容,也可以在这里设置映射文件夹、加密传输、最大连接用户数、分配带宽、重置密码、更改端口,如果你需要的话,还可以查看错误日志和操作日志。
创建播放列表
点击图7窗口右侧的“New MP3 Playlist”或“New Movie Playlist”按钮,我们可以创建一个MP3或影片的播放列表。不过这里需要说明的是,你需要将相关的媒体文件复制到C:Program FilesDarwin Streaming ServerMovies文件夹中才行。
如图8所示,我们可以在这里通过“Weight”旁边的小三角箭头重新调整播放列表的播放顺序,可惜的是QuickTime Streaming Server对简体中文的支持十分差劲,显示的竟然是一些乱码字符。最后,点击窗口右下角的“Save Changes”按钮就可以将这份新建的播放列表保存下来,以后如果需要更改的话可以选择“Edit Playlist”重新配置。
不过,如果你希望其他用户也能访问这份播放列表文件,还必须点击“Avaliable Playlists”列表框中的“Status”下的播放按钮,也就是让“Status”列的“Stopped”变为“Playing”才行。
实现网络直播
如果你还想在播放完MP3歌曲后说上一段话,那么简单的很,只要一个话筒就行了。不过,还需要在Winamp中进行一些设置,如图9所示,在“Input Device”下拉列表框中选择“Soundcard Input”项,这样才会出现图中的SoundCard Mixer设置项。如果使用默认的设置“Winamp(Recommended)”的话就只有Input Levels一项了,下面还有“Music Level”、“BGMusic Level”、“Mic Level”几个滑块可以调节音量的大小,而“Fade Time”是用来设
置移出时间值。
现在,你无需进行其它设置,准备一番后,清清嗓子,点击“Push to Talk”按钮,然后再按下“Lock”按钮锁定当前话音输入模式。接下来就可以对着麦克风开始你的网络直播之旅了,结束请再次按下“Lock”按钮解锁。
G. android 如何播放rtsp://110.80.31.70:6000/channe1
可以用webView,加载HTML,通过video来播放。
一、需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做
具体如下:
1如果要声明整个应用都要加速:< application ... android:hardwareAccelerated ="true">
2.如果要在Activity中声明,则:
<activity ... android:hardwareAccelerated="true" >
Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
3.如果application或者activity都申明了要硬件加速,但是为了某些原因(比如省电?),一些View不需要硬件加速的话, view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
二、 需要在AndroidManifest.xml文件中用上<use-sdk></use-sdk>标签,而且如果是空的还不行,必须写上targetSDK或者minSDK,但是我试验过,不管写版本是多少都没有关系。理论上说,Android应该是从3.0( API Level 11)开始可以对2D渲染加速,但是我把targetSDK设置为5都可以使用的,但是这个标签不写还不行。
一般来说,上面的操作做了,就可以使用video标签播放视屏了,如果要支持全屏,还需要做一点操作: 给webview一个WebChromeClient对象,这个WebChromeClient对象需要实现onShowCustomView和onHideCustomView方法
H. android系统下支持rtsp的流媒体播放器有哪些
有挺多啊,比如VLC、比如Vitamio做出来的VPlayer,这些都可以的
I. android用VideoView播rtsp直播流,真机跑OK,模拟器报以下异常,求解
网络不通,没加访问网络的用户权限吧?
AndroidManifest.xml加一句:
<uses-permission android:name="android.permission.INTERNET"/>
J. android怎么播放rtsp实时网络串流代码
android播放rtsp实时网络串流核心代码如下:
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.VideoView;
public class rtspActivity extends Activity {
/** Called when the activity is first created. */
Button playButton ;
VideoView videoView ;
EditText rtspUrl ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rtspUrl = (EditText)this.findViewById(R.id.url);
playButton = (Button)this.findViewById(R.id.start_play); playButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
PlayRtspStream(rtspUrl.getEditableText().toString()); } });
videoView = (VideoView)this.findViewById(R.id.rtsp_player); }
//play rtsp stream
private void PlayRtspStream(String rtspUrl){
videoView.setVideoURI(Uri.parse(rtspUrl));
videoView.requestFocus();
videoView.start();
}
}