-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(RuntimeError) Cannot find default RTP payload type for encoding AAC #8
Comments
Sorry so busy in last days. Please take a look at You can try to run version from the first PR but it may still have some problems. |
@mickel8 thanks 👍🏻 I updated deps for
|
@jongirard We have merged a new version of |
@mickel8 basically following the demo (other than using There is a slightly new error now, with I can add
to the RTP SessionBin, which makes the error go away, but then it complains of invalid caps.
The payloader is set in the notification as in the demo so I'm not sure why it says it can't find the payloader. |
Oh I didn't see it before, my bad. The problem is that we don't have AAC payloader so its impossible to create RTP stream containing AAC payload at this moment :( |
We only have AAC depayloader and rtp_to_hls demo use it but it doesn't use payloader |
Oh I see.. 🙂 I guess I'm a little confused then, because there is no MP4 muxer either I thought I needed to "manually" get the .h264/.aac file extractions via ffmpeg in order to use in my flow of file source -> rtp -> realtimer -> hls. Is there some other audio format I could use or some way to get this working? I see there is an RTP.Opus.Payloader but there is no Membrane.MP4.Payloader.OPUS plugin. For my flow (HLS) I think it needs to be containerized into CMAF. Could it be possible to go opus (parser) -> Opus Payloader -> RTP -> Membrane.RTP.AAC.Depayloader -> Membrane.MP4.Payloader.AAC? |
Could something like this work? Basically parsing OPUS input file, through RTP, decode OPUS to
If so, the only thing that's going wrong is "corrupted stream" from the membrane opus decoder.
|
Why do we want to combine Opus elements with AAC elements? If audio is compressed with Opus, encapsulated in RTP packets with Opus Payloader then it should be extracted from RTP packets with Opus Depayloader.
I think that it might be possible 😉
Are you sure you have Opus stream not AAC one? We have similar example here https://github.com/membraneframework/membrane_demo/blob/master/rtp/lib/membrane_demo_rtp/receive_pipeline.ex#L73-L75 and we do it in the same way you did 🤔 |
Indeed, I'm using Interestingly, I tried using the "beep.opus" as used in the rtp send_pipeline demo which seems to make it past the decoder, only to fail due to a CMAF issue in the last step.. any ideas how to fix that? I see that
As for why my own opus file was claiming to be a "corrupted stream", maybe it's a problem with the ffmpeg encode of my opus file? |
This can be possible but I don't have any ideas what you could set differently while encoding your audio. Anyway, @mat-hek do you have any ideas? |
The only thing I can see is that you are setting audio bitrate to 192k by |
@jongirard It seems you shouldn't parse Opus after getting it from RTP, as RTP contains a non-delimited Opus stream. Check the audio part of https://github.com/membraneframework/membrane_demo/blob/webrtc_to_hls/webrtc_to_hls/lib/webrtc_to_hls/pipeline.ex , the WebRTC Endpoint bin uses RTP bin underneath, so the output is the same as from RTP. |
Discussed this on Discord, apparently a commit needs to be reverted in order for the latest version of membrane_rtp_aac_plugin to work.
The text was updated successfully, but these errors were encountered: