Red5 / red5-server

Red5 Server core
Apache License 2.0
3.33k stars 982 forks source link

h.264/aac encoded video does not play video or audio when added to an IServerStream #70

Open mondain opened 9 years ago

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

What steps will reproduce the problem?
1. have handy an h.264/aac encoded video

2. create a SimplePlayItem via SimplePlayItem.build(...), and add it to a 
IServerStream object; make sure the IServerStream is started.

--code snippet--
mLiveStream = StreamUtils.createServerStream(mAppScope, "playlist1");
mLiveStream.addItem(SimplePlayItem.build("h264aacvideo.mp4", -2, -1 ));
//mLiveStream.setItem(1);
mLiveStream.start();
--

3. now, compile code, and start server & access 
rtmp://127.0.0.1/mywebapp/playlist1 using your favorite player

What is the expected output? What do you see instead?
The expected output is the video should play, i should see the video & I should 
hear the audio

what happens instead is the video player reports as if it's playing back in 
that the time shows an increment of seconds however black screen, and no audio 
is heard.

now, if there are multiple mp4/aac videos added to this IServerStream playlist, 
the second video plays perfectly and the videos transition perfectly from then 
on. When setting the seek point of the first video to the end of the video for 
it to transition quickly to the next video. that also works.

also, VOD of these encode videos plays perfectly as well.
--
What version of the product are you using? On what operating system?
later versions 1.0RC, 1.0, & 1.01, & Ubuntu 12.04

Please provide any additional information below.

logs attached below:

please disregard the discrepancy with the code provided and the log report.
====================================
[INFO] [Launcher:/installer] org.red5.server.service.Installer - Installer 
service created
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action connect
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.RTMPHandler - Connecting to: 
[WebScope@e175cca Depth = 1, Path = '/default', Name = 'tadau1']
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.Application - W3C 
x-category:session x-event:connect c-ip:127.0.0.1 c-client-id:0
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.Application - comparing 
streamName live0 with live0
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.ScheduledPlaylist - Setting 
app scope for playlist
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.ScheduledPlaylist - Creating 
Live Stream live0
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.Application - Found! live0 
contains 1 playlist items
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.ScheduledPlaylist - added 
simpsons to playlist length = -1: canStart = -2
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.Application - W3C 
x-category:stream x-event:publish c-ip:127.0.0.1 x-sname:live0 x-name:live0
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.ScheduledPlaylist - Starting 
stream
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.Application - Playlist 
starting for live0
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action _error
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action _error
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action createStream
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.RTMPHandler - Remembering 
client buffer on stream: 2000
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action play
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action _error
[INFO] [NioProcessor-2] com.ztwoi.tadau.scheduler.SecureStream - Checking 
playback security for tadau1 live0
[INFO] [pool-4-thread-1] com.ztwoi.tadau.scheduler.Application - W3C 
x-category:stream x-event:play c-ip:127.0.0.1 
x-sname:565553c4-d60a-4d4d-bbcd-4992f0c5a29c
[INFO] [pool-4-thread-1] com.ztwoi.tadau.scheduler.Application - W3C 
x-category:stream x-event:play c-ip:127.0.0.1 
x-sname:565553c4-d60a-4d4d-bbcd-4992f0c5a29c x-name:live0
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action _error
[INFO] [NioProcessor-2] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - 
Action _error
=================

Original issue reported on code.google.com by mee...@gmail.com on 19 Jan 2013 at 5:59

Copied from original issue: mondain/red5#335

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

the intended name of the video file is "h264aacvideo.flv", not 
"h264aacvideo.mp4", my apologies.

Original comment by mee...@gmail.com on 19 Jan 2013 at 6:01

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

btw. my workaround was to add a 1 second video as the first video in the 
iserverstream playlist.

Original comment by mee...@gmail.com on 20 Jan 2013 at 6:28

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

I recently did a demo with the playlist stuff and I recall it being tricky and 
also exposed a bug in the playback (which should be fixed in 1.0+). I'll look 
for the source and post an example here. 

Original comment by mondain on 21 Jan 2013 at 3:31

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

mondain, any updates? This seems like something that should work? I'm surprised 
not very many people are having this problem.

Original comment by mee...@gmail.com on 26 Jan 2013 at 3:29

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

I started on this and also looked at fixing the unit test, but have not gained 
a lot of ground as of yet. I think the reason that you don't see this reported 
as often as you'd expect is due to people creating their own play list 
implementations and not used the server-controlled version.

Original comment by mondain on 26 Jan 2013 at 4:48

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

much appreciation for you being on top of this. Looking forward to any progress 
you make.

Original comment by mee...@gmail.com on 27 Jan 2013 at 4:15

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

I have the same bug. Does anyone have a solution?

Original comment by chemEugene on 25 Sep 2013 at 7:09

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

I really need solution for that. Is it possible to update priority for this 
problem?

Original comment by abon...@gmail.com on 30 Sep 2013 at 7:13

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

faced with the same problem. please fix it if possible!

Original comment by roman.no...@gmail.com on 1 Oct 2013 at 8:11

mondain commented 9 years ago

From @GoogleCodeExporter on March 15, 2015 16:59

any chance this will get fixed with the coming update to 1.0.2?

Original comment by mee...@gmail.com on 8 Oct 2013 at 6:02

jdc18 commented 7 years ago

I think I have the same issue,

public void publishPlaylist() { serverStream = StreamUtils.createServerStream(scope, "testplaylist");

    String pelicula = "Avengers2.mp4";
    SimplePlayItem item = SimplePlayItem.build(pelicula);
    serverStream.addItem(item);

    serverStream.start();
    serverStream.setRewind(true);
    serverStream.setRepeat(true);
}

Avenger2.mp4 is set on the streams folder, I used the avengers2.mp4 from the examples. I added 2 videos and it jumps to the second one but I get no video or audio. serverStream.getCurrentItem() return the second Item always but it doesnt play anything. I am using 1.0.8-M3 and 1.0.8M12, maybe this works in another library?

nlbtoan commented 6 years ago

I have the same issue. I tried to play below example, but when I subscriber it, I didn't see video. https://github.com/rajdeeprath/red5-development-series/tree/master/code-examples/server-side/red5-stream-examples/stream-serverside-demo

Server log: [INFO] [NioProcessor-2] com.red5pro.server.stream.Red5ProConnManager - LicenseManager max connections: 10 limit counter: 1 true [INFO] [NioProcessor-2] org.red5.streams.examples.serverstream.Application - W3C x-category:session x-event:connect c-ip:127.0.0.1 c-client-id:0 [INFO] [Red5_Scheduler_Worker-2] org.red5.streams.examples.serverstream.Application - W3C x-category:stream x-event:play c-ip:127.0.0.1 x-sname:714038e4-4d3f-4ae8-88c3-94591bb017b1 [INFO] [Red5_Scheduler_Worker-3] org.red5.streams.examples.serverstream.Application - W3C x-category:stream x-event:play c-ip:127.0.0.1 x-sname:714038e4-4d3f-4ae8-88c3-94591bb017b1 x-name:tv [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [Red5ProConnectionChecker-1] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 1 [INFO] [NioProcessor-19] com.red5pro.server.stream.Red5ProConnManager - LicenseManager max connections: 10 limit counter: 2 true [INFO] [NioProcessor-19] com.red5pro.server.stream.Red5ProConnManager - Adding session id: 4IQS2V8B8CHQD RTCConnection [appScope=null, initParams=null, stream=null, record=false, closed=false, userAgent=undefined] [INFO] [NioProcessor-19] com.red5pro.server.stream.Red5ProConnManager - Pro connection count: 2 [INFO] [NioProcessor-19] com.red5pro.webrtc.RTCConnection - UA: Firefox on Win [INFO] [NioProcessor-19] org.red5.streams.examples.serverstream.Application - W3C x-category:session x-event:connect c-ip:192.168.72.240 c-client-id:subscriber-77c1 [INFO] [NioProcessor-19] com.red5pro.webrtc.RTCConnection - close [INFO] [NioProcessor-19] org.red5.streams.examples.serverstream.Application - W3C x-category:session x-event:disconnect c-ip:192.168.72.240 c-client-id:subscriber-77c1 [INFO] [NioProcessor-19] com.red5pro.server.stream.Red5ProConnManager - Remove 4IQS2V8B8CHQD