kalldrexx / elixir-media-libs Goto Github PK
View Code? Open in Web Editor NEWCollection of libraries and applications written in Elixir for use in working with different types of media
License: MIT License
Collection of libraries and applications written in Elixir for use in working with different types of media
License: MIT License
When viewing a stream on https://www.wowza.com/testplayers, an actionscript 3 error occurs.
I assume this is because Wowza's test players are expecting an AMF3 onMetaData
message and I'm sending it as an AMF0 message (since its sending me AMF0 encoded commands wrapped in an AMF3 message type).
I'd probably have to add an extra 0x00
in front of the AMF0 encodings and have it adjust the type to 15
instead of 18
, but only in these situations
No idea why yet :(
Hello, I'm not sure if these packages are still used but I am modifying the simple rtmp server to save raw data from an OBS rtmp stream (the video and audio data) but I'm not sure what format the "data" bytes are in the event here: https://github.com/KallDrexx/elixir-media-libs/blob/master/apps/simple_rtmp_server/lib/simple_rtmp_server/worker.ex#L223
any guidance would be much appreciated ๐
There should be a GenRtmpClient
behaviour that allows issuing connect, createstream, play, pause, closestream and publish commands, and allows sending and receiving audio/video data and metadata.
First iteration only requires one stream at a time.
This will include updating rtmp_session
to successfully act as a client.
VLC seems fine, but flash players seem to be stuttering when sending between 3-5Mbps, and is choppy even at 1Mbps.
AAC only required for first iteration
Hi @KallDrexx, Thanks so much for making this library. I'm very impressed with your work. But I'm curious about how can we use the gen_rtmp_client
? I see adopter_module
but actually not yet understand it. If you can describe more, it will be helpful, thanks.
A server should be able to send an RTMP ping to the client and get notified of a pong response, and be able to disconnect a client if a pong is not received within a window.
Events should be raised up to behaviour adopters.
RTMP sessions should surface an event when an acknowledgement message comes up.
Furthermore, modules adopting the GenRtmpServer
behaviour should have some mechanism of knowing how many bytes it sent to the peer and if an acknowledgement is due, and allow disconnecting the connection if an acknowledgement didn't come back fast enough.
Session handler should raise an event so GenRtmpServer
adopters can handle acknowledgement messages (or lack thereof)
Could you please tell me about adopter_args
and what arguments should i pass?
https://developer.jwplayer.com/tools/stream-tester/ is showing video that's incorrectly skinny if the player connects before the publisher starts pushing video.
Hi,
It's nice to check your project, hopefully can become BIG soon :)
By the way... I contact you through this, is not for any issue (I haven't try yours yet), but I do have a question regarding your project.
Currently I'm still learning elixir phoenix, I'm creating a simple video conference meeting site where each user can meet others and have a video conversations (more than 2 users).
I managed to push a stream of images (base64 png without voice) to a channel, and planning to push it to each joined sockets, so each user can received it and renders it on their browser using an img tag every 40 milliseconds (25fps) --> but this approach creates skip frames on browser other than Chrome.
I wonder if your library can receives a stream of image files and converts it on the fly to video stream (in memory not disk) so I can push it to joined sockets?
Thanks :)
P.S my project is in my repo here, named portal.
Video comes in via gen_rtmp_server
adopter and gets saved in 10 second TS fragments (no hls manifest for phase 1)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.