yonle / openradio Goto Github PK
View Code? Open in Web Editor NEWOnly some simple live stream library.
Home Page: https://openradio.herokuapp.com
License: BSD 3-Clause "New" or "Revised" License
Only some simple live stream library.
Home Page: https://openradio.herokuapp.com
License: BSD 3-Clause "New" or "Revised" License
We're delayed openradio updates by fixing some major issue, and improvement of openradio. this takes a time to finish. So please wait
This error can happend when you aren't provide any byte-per-second argument in player.play
function.
end
event is never emitted when the song is Finished.
Could you add support for binding to an IP address? On a VPS you can't access localhost.
when trying to play an .m4a file in the queue it skips it and moves onto the next song
Hi, Your project gave me a lot of interesting ideas , thank you
I changed the code to play video instead of audio but i have some issues , help me please whats wrong
this is my code
const Throttle = require("throttle");
const ffmpeg = require("prism-media").FFmpeg;
const http = require("http");
const axios = require('axios');
const exec = require('child_process').exec;
let sink = new Map();
let port = process.argv.slice(2)[0] || 8000;
let stream;
let host;
let header;
process.title = "Video";
const server = http
.createServer((req, res) => {
if (!stream) play();
let generateId = () => Math.random().toString(36).slice(2);
let id =
generateId() +
generateId() +
generateId() +
generateId() +
generateId() +
generateId();
res.setHeader("Content-Type", "video/mp4");
console.log('New Sink Connected (${id})');
console.log(
"------------------------------------\nTotal Sink:",
sink.size
);
if (header) res.write(header);
sink.set(id, res);
req.on("close", () => {
console.log('Sink (${id}) Disconnected.');
console.log(
"------------------------------------\nTotal Sink:",
sink.size
);
sink.delete(id);
});
})
.listen(8090);
let mp4 = ["b.mp4", "a.mp4"];
var idd = -1;
function convert() {
idd = idd + 1;
if (idd > 1) {
idd = 0;
}
return new ffmpeg({
args: [
"-i",
mp4[idd],
"-analyzeduration",
"0",
"-loglevel",
"0",
"-s",
"1280x720",
"-acodec",
"aac",
"-vcodec",
"libx264",
"-movflags",
"frag_keyframe+empty_moov",
"-f",
"mp4",
"-map_metadata",
"-1"
],
});
}
async function play() {
let newSong = 1;
if (stream) {
if (stream.playing) return;
}
stream = convert().pipe(Throttle(400000));
stream.on("data", (chunk) => {
if (header && newSong) return newSong = 0;
if (!header && newSong) {
header = chunk;
newSong = 0;
}
sink.forEach((s) => {
s.write(chunk);
});
});
stream.playing = true;
stream.on("end", () => {
if (!stream) return;
if (stream.stopped) return;
stream.playing = false;
return play();
});
stream.on("error", (err) => {
console.error("An error occured when playing Skipping....");
return play();
});
}
In some of weird conditions, Openradio repeater could be ended up making the single nodes process to be died.
<--- Last few GCs --->
[2726:0x7aefe78340] 49397 ms: Scavenge 444.4 (454.3) -> 444.3 (455.8) MB, 9.6 / 0.0 ms (average mu = 0.634, current mu = 0.563) allocation failure
[2726:0x7aefe78340] 52390 ms: Mark-sweep 460.2 (470.8) -> 449.7 (461.1) MB, 2960.8 / 0.0 ms (average mu = 0.331, current mu = 0.018) allocation failure scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
I myself also don't know what was going on. The repeater code itself is simple, Still i think something isn't right
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.