google-code-export / red5

Automatically exported from code.google.com/p/red5
0 stars 0 forks source link

rtmp flv stream forward error with wrong .meta file #512

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
When I add a new .flv file, it'll automatically produce a .meta file. That's 
where the error starts. Error keeps shows in the console, and then it produce a 
wrong broken meta. So the rmtp flv player can't fast forward sometimes. It'll 
jump to another stream when I jump forward.

I think there must be something wrong when it reads the .flv file.

I'm using the latest release version 1.02.

Original issue reported on code.google.com by owendsw...@gmail.com on 4 Jul 2014 at 7:08

GoogleCodeExporter commented 9 years ago
error shows like below:

[ERROR] [RTMPExecutor#8XZSLQC1FPHT9-1] org.red5.io.flv.impl.FLVReader - Error 
fillBuffer
java.nio.channels.ClosedByInterruptException: null
        at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202) ~[na:1.7.0_60]
        at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:155) ~[na:1.7.0_60]
        at org.red5.io.flv.impl.FLVReader.fillBuffer(FLVReader.java:350) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.setCurrentPosition(FLVReader.java:283) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.analyzeKeyFrames(FLVReader.java:753) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.postInitialize(FLVReader.java:369) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.<init>(FLVReader.java:157) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLV.getReader(FLV.java:235) [red5-io-1.0.3.jar:na]
        at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:236) [red5-server.jar:na]
        at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:130) [red5-server.jar:na]
        at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:69) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.playVOD(PlayEngine.java:626) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:458) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:304) [red5-server.jar:na]
        at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:226) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:334) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:360) [red5-server.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_60]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_60]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_60]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_60]
        at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:193) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:210) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:268) [red5-server.jar:na]
        at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:89) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:54) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:11) [red5-server.jar:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
[WARN] [RTMPExecutor#8XZSLQC1FPHT9-1] org.red5.io.flv.impl.FLVReader - 
Exception acquiring lock
java.lang.InterruptedException: null
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1301) ~[na:1.7.0_60]
        at java.util.concurrent.Semaphore.acquire(Semaphore.java:317) ~[na:1.7.0_60]
        at org.red5.io.flv.impl.FLVReader.hasMoreTags(FLVReader.java:519) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.analyzeKeyFrames(FLVReader.java:690) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.postInitialize(FLVReader.java:369) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.<init>(FLVReader.java:157) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLV.getReader(FLV.java:235) [red5-io-1.0.3.jar:na]
        at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:236) [red5-server.jar:na]
        at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:130) [red5-server.jar:na]
        at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:69) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.playVOD(PlayEngine.java:626) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:458) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:304) [red5-server.jar:na]
        at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:226) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:334) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:360) [red5-server.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_60]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_60]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_60]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_60]
        at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:193) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:210) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:268) [red5-server.jar:na]
        at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:89) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:54) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:11) [red5-server.jar:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
[ERROR] [RTMPExecutor#8XZSLQC1FPHT9-1] org.red5.io.flv.impl.FLVReader - Error 
setCurrentPosition
java.nio.channels.ClosedChannelException: null
        at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:99) ~[na:1.7.0_60]
        at sun.nio.ch.FileChannelImpl.position(FileChannelImpl.java:250) ~[na:1.7.0_60]
        at org.red5.io.flv.impl.FLVReader.setCurrentPosition(FLVReader.java:279) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.analyzeKeyFrames(FLVReader.java:757) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.postInitialize(FLVReader.java:369) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.<init>(FLVReader.java:157) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLV.getReader(FLV.java:235) [red5-io-1.0.3.jar:na]
        at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:236) [red5-server.jar:na]
        at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:130) [red5-server.jar:na]
        at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:69) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.playVOD(PlayEngine.java:626) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:458) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:304) [red5-server.jar:na]
        at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:226) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:334) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:360) [red5-server.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_60]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_60]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_60]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_60]
        at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:193) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:210) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:268) [red5-server.jar:na]
        at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:89) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:54) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:11) [red5-server.jar:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
[ERROR] [RTMPExecutor#8XZSLQC1FPHT9-1] org.red5.io.flv.impl.FLVReader - Error 
getCurrentPosition
java.nio.channels.ClosedChannelException: null
        at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:99) ~[na:1.7.0_60]
        at sun.nio.ch.FileChannelImpl.position(FileChannelImpl.java:250) ~[na:1.7.0_60]
        at org.red5.io.flv.impl.FLVReader.getCurrentPosition(FLVReader.java:254) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.postInitialize(FLVReader.java:371) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLVReader.<init>(FLVReader.java:157) [red5-io-1.0.3.jar:na]
        at org.red5.io.flv.impl.FLV.getReader(FLV.java:235) [red5-io-1.0.3.jar:na]
        at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:236) [red5-server.jar:na]
        at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:130) [red5-server.jar:na]
        at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:69) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.playVOD(PlayEngine.java:626) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:458) [red5-server.jar:na]
        at org.red5.server.stream.PlayEngine.play(PlayEngine.java:304) [red5-server.jar:na]
        at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:226) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:334) [red5-server.jar:na]
        at org.red5.server.stream.StreamService.play(StreamService.java:360) [red5-server.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_60]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_60]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_60]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_60]
        at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:193) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:210) [red5-server.jar:na]
        at org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:268) [red5-server.jar:na]
        at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:89) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:54) [red5-server.jar:na]
        at org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.java:11) [red5-server.jar:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]

Original comment by owendsw...@gmail.com on 4 Jul 2014 at 7:37

GoogleCodeExporter commented 9 years ago
Cannot reproduce

Original comment by mondain on 9 Nov 2014 at 4:03