Closed qeantx closed 8 years ago
Try with rtsp protocol, just replace rtmp with rtsp and set buffersize 1000 just before when you call its start() method, and get back here with update. If still It's not working try prepare() instead prepareAsync().
sorry it's too late
the change are links
"rtsp://106.248.243.130:8080/live/bc_01",
"rtsp://106.248.243.130:8080/live/ht_01",
"rtsp://106.248.243.130:8080/live/yh_01",
"rtsp://106.248.243.130:8080/live/bc_02",
"rtsp://106.248.243.130:8080/live/mb_01",
"rtsp://106.248.243.130:8080/live/mb_03"};
and buffersize
mVideoView.setMediaController(new MediaController(mVideoView.getContext()));
mVideoView.setBufferSize(1000);
mVideoView.requestFocus();
and prepare
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
try {
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.setPlaybackSpeed(1.0f);
}
});
it's not only didn't working, but also has problem the player says "Cannot play video", "Sorry, this video cannot be played" and logcat is
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: VPLAYER INIT BEGIN
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: Application package name: com.example.qeantx_pc.phoenixpark
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: VPLAYER INIT END
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: Copyright (c) YIXIA (http://yixia.com).
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THIS SOFTWARE (Vitamio) IS WORK OF YIXIA (http://yixia.com)
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: Application package name: com.example.qeantx_pc.phoenixpark
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: Copyright (c) YIXIA (http://yixia.com).
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THIS SOFTWARE (Vitamio) IS WORK OF YIXIA (http://yixia.com)
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: Application package name: com.example.qeantx_pc.phoenixpark
12-12 11:40:08.204 27825-27825/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: PREPARE SIG: 0
12-12 11:40:08.209 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THREAD PREPARE START
12-12 11:40:08.209 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THREAD PREPARE ATTACHED
12-12 11:40:08.209 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: Copyright (c) YIXIA (http://yixia.com).
12-12 11:40:08.209 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THIS SOFTWARE (Vitamio) IS WORK OF YIXIA (http://yixia.com)
12-12 11:40:08.209 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: OPEN FILE rtsp://106.248.243.130:8080/live/bc_01
12-12 11:40:08.244 27825-32025/com.example.qeantx_pc.phoenixpark E/Vitamio[4.2.1][Player]: avformat_open_input: Invalid data found when processing input : -1094995529
12-12 11:40:08.244 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THREAD PREPARE DETTACHED, ret = 0
12-12 11:40:08.244 27825-32025/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: THREAD PREPARE END
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark E/Vitamio[4.2.1][Player]: error (1, -1094995529)
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FILE CLOSE BEGIN
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FREE VIDEOPIC BEGIN
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FREE VIDEOPIC 2 END
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FREE SUBPIC BEGIN
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FREE SUBPIC 1 END
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FREE AUDIOFRAME BEGIN
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FREE AUDIOFRAME 8 END
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: DELETE GLOBAL REF BEGIN
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: DELETE GLOBAL REF END
12-12 11:40:08.244 27825-32024/com.example.qeantx_pc.phoenixpark I/Vitamio[4.2.1][Player]: FILE CLOSE END
12-12 11:40:08.339 27825-27825/com.example.qeantx_pc.phoenixpark E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-12 11:40:08.339 27825-27825/com.example.qeantx_pc.phoenixpark E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-12 11:40:08.339 27825-27825/com.example.qeantx_pc.phoenixpark E/Vitamio[Player]: Error (1, -1094995529)
after that, I think there server might do not support rtmp so, I rechange my links to rtmp and just writing prepare() instead prepareAsync() it's time better then prepare() but still crash...
I think main problem is [h264 @ 0x5da84630] no frame! [h264 @ 0x5f74e740] no frame! FFMPEG NATIVE avcodec_decode_video2 FFMPEG NATIVE avcodec_decode_video2 here...
how can I process this error? and strange thing... that logcat say no frame, but player is working well when stop those message, than stop player and crash
addtionaly, I don't know that buffer size chaning occure what but, just I set buffersize to 1000
try this way public class MainActivity extends Activity { private MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
String path="rtsp://219.65.90.226:1935/app1/myStream";
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mp.setDataSource(path);
mp.prepareAsync();
mp.setOnPreparedListener(this);
mp.setOnBufferingUpdateListener(this);
mp.setOnErrorListener(this);
mp.setOnInfoListener(this);
mp.start();
}catch (IOException e) {
e.printStackTrace();
}
}
}
You can add the listener if you want.
This stream is valid? rtsp://106.248.243.130:8080/live/bc_01
I can't play here(out of android).
Try this stream rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
and post logs again.
Log level: Verbose (No Filters)
dear FloridaStream vaild stream url is "rtmp://106.248.243.130:8080/live/bc_01" actually, I don't understand about diffence that protocols, but rtps is can't play so I always use rtmp, try just rtmp instead rtsp
and ram10609601 I try your suggestion, but sadly It doesn't work I first try rtmp in all link, and seconds I try rtsp too but logcat says...
VPLAYER INIT BEGIN
Application package name: com.example.qeantx_pc.phoenixpark
VPLAYER INIT END
immediatly dead...
my source code in Activity(actually, I use master/slave Form in android studio, so exactly, fragment)
View rootView = inflater.inflate(R.layout.item_detail, container, false);
//view video screen
if (mItem != null) {
mVideoView = (VideoView) rootView.findViewById(R.id.vitamio_videoView);
mediaPlayer = new MediaPlayer(this.getContext());
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
try {
mp.setDataSource(path);
} catch (IOException e) {
e.printStackTrace();
}
mp.start();
}
});
}
return rootView;
and I don't find setaudiostreamtype anyware so I don't write that.
long time no see, sorry, because I have a another job, but I try again and again
and I find "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" on above I try to this link, than It is work well
I really don't know that, what is the difference in two streamming just protocol?, rtsp and rtmp?
I don't understand... maybe, it is problem that, my video is HD
now, I try changing buffersize because, "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" this link is worked on buffersize(1000), otherwise movie is stop maybe, my video required other buffersize too I just try a lot when I know something or relize something, than I will be post ever and ever again
I found some reason buffer must don't have too small(such like 1~10) or too big(10000 and over) than possible value is 50~5000(maybe, I don't try everything)
buffer is movie data space, so I set large buffer, than movie is playing long but problem is... I don't know that handle buffer
I just require next stream data, not previous data so I think, I play one seconds, than I flush buffer(for old data, not new data) but how do I do that?
anyone know?, I will try searching
okay, now I solve the problem and I first say sorry, because I missed example source in repository
first I saw the vitamioBundle sample on Internet but It's don't handle buffer, so I suffer buffer problem buffering is not working, so it occur problem that is next frame is empty, and suspend thread
now I saw "https://github.com/yixia/VitamioBundle/blob/master/vitamio-sample/src/io/vov/vitamio/demo/VideoViewBuffer.java" in this file, handle about buffer, such like this
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
if (mVideoView.isPlaying()) {
mVideoView.pause();
pb.setVisibility(View.VISIBLE);
downloadRateView.setText("");
loadRateView.setText("");
downloadRateView.setVisibility(View.VISIBLE);
loadRateView.setVisibility(View.VISIBLE);
}
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
mVideoView.start();
pb.setVisibility(View.GONE);
downloadRateView.setVisibility(View.GONE);
loadRateView.setVisibility(View.GONE);
break;
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:
downloadRateView.setText("" + extra + "kb/s" + " ");
break;
}
return true;
}
I added this code, than it works good(actually, I have some problem but that is other part) sorry to bother people, and thanks to supply FloridaStream and ram10609601 and now I close the comment happy christmas~
Thanks for sharing the solution of this problem, it is very important to help each other. :+1:
I want to make RTMP client RTMP server is aleady make(I didn't), and I just play RTMP on this library but there is a two problem.
first, application is so slow, I mean, the RTMP playing is at least 15 seconds. but other product player(search like MXplayer and flashplayer and others) is only around 5 seconds I resize buffer, but it useless
second, application is die, when it played, logcat say
and below part, say again, and again, and again... I mean, below four log line message repeat, until player is dead
and finaly, it is dead, and logcat say(it is really long)
addtionaly, my code is
and my rtmp links are "rtmp://106.248.243.130:8080/live/bc_01", "rtmp://106.248.243.130:8080/live/ht_01", "rtmp://106.248.243.130:8080/live/yh_01", "rtmp://106.248.243.130:8080/live/bc_02", "rtmp://106.248.243.130:8080/live/mb_01", "rtmp://106.248.243.130:8080/live/mb_03"
sorry it's too long, how do i solve this problem?