Red5 / red5-server

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

MP3 stream playing failure:o.r.s.net.rtmp.RTMPMinaConnection - Interrupted while waiting for write lock. State: connected #291

Open Woodsus opened 4 years ago

Woodsus commented 4 years ago

Issue

Short description

I‘d tried to play mp3 files by jwPlayer but encountered this error, and tried 3 different MP3 files none of them worked fine. No errors met when playing MP4/M4A files.

Environment

[] Operating system and version: Windows 7 and Linux Rehat 4.4.7 [] Java version: 13.0.2 [] Red5 version:1.2.3

Expected behavior

MP3 files should be played well.

Actual behavior

Error occurred when started to play.

Steps to reproduce

  1. put a MP3 file into directory ../webapps/oflaDemo/streams
  2. use html file below
  3. type line in browser :http://10.108.130.222:5080/oflaDemo/jwPlayer.html?name=test.mp3 4.click play button and show the error msg in console.

Logs

2020-02-26 14:36:34,083 [pool-1-thread-14] WARN o.r.s.net.rtmp.RTMPMinaConnection - Interrupted while waiting for write lock. State: connected java.lang.InterruptedException: null at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1367) at java.base/java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:415) at org.red5.server.net.rtmp.RTMPMinaConnection.write(RTMPMinaConnection.java:331) at org.red5.server.net.rtmp.Channel.write(Channel.java:128) at org.red5.server.net.rtmp.Channel.write(Channel.java:100) at org.red5.server.stream.consumer.ConnectionConsumer.pushMessage(ConnectionConsumer.java:195) at org.red5.server.messaging.InMemoryPushPushPipe.pushMessage(InMemoryPushPushPipe.java:89) at org.red5.server.stream.PlayEngine.doPushMessage(PlayEngine.java:975) at org.red5.server.stream.PlayEngine.sendOnPlayStatus(PlayEngine.java:1182) at org.red5.server.stream.PlayEngine.sendCompleteStatus(PlayEngine.java:1210) at org.red5.server.stream.PlayEngine.stop(PlayEngine.java:779) at org.red5.server.stream.PlayEngine$DeferredStopRunnable.execute(PlayEngine.java:1964) at org.red5.server.scheduling.JDKSchedulingServiceJob.run(JDKSchedulingServiceJob.java:43) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:830) 2020-02-26 14:36:34,100 [pool-1-thread-14] INFO o.r.s.net.rtmp.RTMPMinaConnection - Session id: WO1KG1QUHPQ6T in queue size: 0 pending msgs: 1 last ping/pong: 0 2020-02-26 14:36:34,101 [pool-1-thread-14] INFO o.r.s.net.rtmp.RTMPMinaConnection - Available permits - decoder: 1 encoder: 1 2020-02-26 14:37:45,120 [pool-6-thread-1] INFO org.red5.server.tomcat.WarDeployer - Deploy wars with app start

oflaDemo

ghost commented 4 years ago

I'm seeing this as well after fixing the 1.2.3 release by manually adding the missing tika lib files.

mat0rres commented 2 years ago

Hi @michaelpetruzzellocivicom, I have the same problem as @Woodsus, running version 1.2.10 and 1.2.24. With the default libs folder he throws the exception:

org.red5.server.messaging.InMemoryPullPullPipe - exception when pulling message from provider java.lang.NoClassDefFoundError: org/apache/tika/sax/BodyContentHandler

I have tried putting tika-core and tika-parsers (1.16 and 1.28.4) in the libs folder and that is when the exception referenced by @Woodsus

WARN o.r.s.net.rtmp.RTMPMinaConnection - Interrupted while waiting for write lock. State: connected java.lang.InterruptedException: null

Would it have to be specifically with 1.2.3 release?

endlesshh commented 2 years ago

keyframeCache is not work in MP3Reader remove IT。no errored ,but it still no work

chushiyun2015 commented 2 years ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。