owenray / remote-mediaserver Goto Github PK
View Code? Open in Web Editor NEWA NodeJS based media server: Manage, watch and share your movies and tv series.
License: GNU General Public License v3.0
A NodeJS based media server: Manage, watch and share your movies and tv series.
License: GNU General Public License v3.0
when a corrupt movie file gets scanned ffprobe will throw an unhandled error
events.js:160
throw er; // Unhandled 'error' event
^
Error: spawn ffprobe ENOENT
at exports._errnoException (util.js:1022:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:359:16)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
Media items which are part of a library of the type "Unspecified" are still grouped together on the library view. These should not be grouped or maybe grouped by directory?
When playing in Chrome (Mpeg4PlayHandler) I get quite a few errors like this:
Error [ERR_STREAM_WRITE_AFTER_END]: write after end
at writeAfterEnd (_stream_writable.js:250:14)
at PassThrough.Writable.write (_stream_writable.js:298:5)
at Mpeg4PlayHandler.onData (/private/tmp/node_modules/remote-mediaserver/backend/modules/ffmpeg/Mpeg4PlayHandler.js:78:36)
at Socket.emit (events.js:200:13)
at Socket.Readable.read (_stream_readable.js:508:10)
at flow (_stream_readable.js:977:34)
at resume_ (_stream_readable.js:958:3)
at processTicksAndRejections (internal/process/task_queues.js:84:9)
After a few seconds AND when seeking.... res.onClose is trying to write?
When running 'node setup.js', I get following error:
`
Fatal error in ../deps/v8/src/api.cc, line 1062
Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().
==== C stack trace ===============================
0 node 0x0000000100bfad23 v8::base::debug::StackTrace::StackTrace() + 19
1 node 0x0000000100bf7ea9 V8_Fatal + 233
2 node 0x000000010014730a v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute) + 330
3 binding.node 0x00000001058c43f2 SassTypes::Boolean::get_constructor() + 352
4 binding.node 0x00000001058c630b SassTypes::Factory::initExports(v8::Local<v8::Object>) + 407
5 node 0x00000001009f5380 node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) + 859
6 node 0x00000001001797d1 v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) + 369
7 node 0x00000001001e75ac v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 924
8 node 0x00000001001e6a09 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 281
9 ??? 0x000039268c7843a7 0x0 + 62837728232359
10 ??? 0x000039268cb76146 0x0 + 62837732368710
`
Never come across this before, Have you experienced this problem?
Hi
I am getting the error below on Debian Buster x64
./remote-mediaserver-linux ⏎
running on platform: linux
downloading ffmpeg
chdir /home/USER/.remote/
2018-12-08T00:13:15.082Z 'starting http server'
koa deprecated Support for generators will be removed in v3. See the documentation for examples of how to convert old middleware https://github.com/koajs/koa/blob/master/docs/migration.md ../../../snapshot/Remote-MediaServer/backend/HttpServer.js:0:0
pkg/prelude/bootstrap.js:1176
throw error;
^
Error: Cannot find module '/snapshot/Remote-MediaServer/node_modules/ed25519-supercop/prebuilds/linux-x64/node-57.node'
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath.
at Function.Module._resolveFilename (module.js:545:15)
at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1278:46)
at Function.Module._load (module.js:472:25)
at Module.require (module.js:594:17)
at Module.require (pkg/prelude/bootstrap.js:1157:31)
at require (internal/module.js:11:18)
at load (/snapshot/Remote-MediaServer/node_modules/node-gyp-build/index.js:13:10)
at Object.<anonymous> (/snapshot/Remote-MediaServer/node_modules/ed25519-supercop/index.js:1:103)
at Module._compile (pkg/prelude/bootstrap.js:1252:22)
at Object.Module._extensions..js (module.js:661:10)
at Module.load (module.js:563:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Module.require (module.js:594:17)
at Module.require (pkg/prelude/bootstrap.js:1157:31)
at require (internal/module.js:11:18)
Hi,
Have you looked into using this?? : https://video-dev.github.io/hls.js/stable/
Using this we could go for HLS all the way and ditch the Mpeg4PlayHandler
As of today, it is supported on:
Please note: iOS Safari “Mobile” does not support the MediaSource API. Safari browsers have however built-in HLS support through the plain video “tag” source URL. See the example above (Getting Started) to run appropriate feature detection and choose between using Hls.js or natively built-in HLS support.
Hi Owen,
Great work so far! It doesn't run on the latest Node though. I installed node via Homebrew. The current version is v12.3.1.
In order to make it work quite a few dependencies need to be updated (including manually installing modules lower down in the node-modules tree (all fs-events and chikodar stuff if I can recall what I all did to make it start). Supercop doesn't compile but can be replaced wth a pure javascript version (supercop.js).
Sander
Thank you for this awesome project!
For some reason when playing an mp4 file, I was receiving this error in my terminal:
(node:22956) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'forEach' of undefined
I was able to trace it down to line 74 of backend/modules/ffmpeg/MediaContentApiHandler.js
streams
variable was undefined. I’m not sure why await FFProbe.getInfo(this.filePath).streams;
would be returning undefined. Also, it doesn’t seem to happen to every mp4, I have an mp4 which works.
I would be happy to investigate this, so I've forked the project, to see if I can help fix it.
Hi,
The subject says enough ;-)
Sander
Once a subtitle file has been selected, subtitles are active and there is no way to turn them off it seems.
Video playback does not work on safari yet due to ranged request not yet being supported.
Hi
Do you mind providing a docker image? Not all of us are js devs
thanks
Should support the same features as the currently implemented ChromeCast support:
Not an issue, But is possible to start a gitter channel or something similar for communication between contributors?
For example: it sees vacation.mp4 just fine. vacation2.MP4 cannot be found until you lowercase the extension.
Windows 10
latest beta of remote-mediaserver
Hi,
Playing in Safari works again. I see that when one seeks in the video (e.g. clinking on progress bar, is spawns a new ffmpegCommand (obviously).... But the previous command keeps on running... Hence seeking 5 times, you end up with 6 processes, consuming quite a lot of CPU. The SIGHKILL stuff you have in Mpeg4PlayHandler works good!
Sander
It seems like I am hitting corner cases here ? It started scanning my media folder then crashed.
2018-12-08T02:59:26.787Z 'found new file' '/media/O/VIDEO/YOUTUBE/xxxxx.mp4'
/snapshot/Remote-MediaServer/node_modules/moviedb-api/index.js:49
if(response.ok) {
^
TypeError: Cannot read property 'ok' of undefined
at /snapshot/Remote-MediaServer/node_modules/moviedb-api/index.js:49:19
at Request.callback (/snapshot/Remote-MediaServer/node_modules/moviedb-api/node_modules/superagent/lib/node/index.js:687:12)
at ClientRequest.<anonymous> (/snapshot/Remote-MediaServer/node_modules/moviedb-api/node_modules/superagent/lib/node/index.js:639:10)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at TLSSocket.socketErrorListener (_http_client.js:387:9)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
Again, the subject says enough I think ;-)
It does work in Chrome and Firefox
Sander
Shouldn't be too difficult, main challenge here would be to separate the play-progress for every user, this is now stored inside the media-item entity but should get it's own entity.
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.