Giter Site home page Giter Site logo

mindstorm38 / fabric-webstreamer Goto Github PK

View Code? Open in Web Editor NEW
18.0 4.0 9.0 278 KB

A Fabric mod to display web resources on screens, support for static images, HLS streaming in-game, including Twitch.

Home Page: https://modrinth.com/mod/webstreamer

License: GNU Lesser General Public License v3.0

Java 100.00%
fabricmc fabric ffmpeg hls hls-live-streaming minecraft minecraft-mod twitch

fabric-webstreamer's Introduction

Web Streamer

A mod to display live streams in-game.

Modrinth Downloads CurseForge Downloads

Web Display block

This mod adds a single item -for now-, called "Web Display". It's a resizable and directional block that allows you to display HLS video streams but also static images. This type of stream is mostly used by Twitch. The Web Display block supports two modes: raw HLS url (.m3u8 file) and Twitch channel with quality. The audio distance and volume is configurable in the display configuration as well as its size.

Supported systems

For now, and in order to distribute a single JAR file, this mod supports a limited set of systems because of the size of the FFmpeg library and other native binaries that needs to be bundled with it:

  • Linux arm64
  • Linux x86_64
  • OSX arm64 (M1 support)
  • OSX x86_64
  • Windows x86_64

If your platform is not supported, please open an issue on GitHub, we need to know which systems are missing. However, x86 (32bits) systems might never be supported, or only in a separated JAR file.

Supported languages

This project uses languages files for user interface texts, and currently supports french (france) and english (us).

Problems reporting

The technology behind it is very complicated to get the video playing at the right frame rate with a synchronized audio. This might not work for all of you, so if you encounter problems, please report them on the issue tracker with the logs file of the session that didn't work.

fabric-webstreamer's People

Contributors

ajh123 avatar mindstorm38 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

fabric-webstreamer's Issues

(Twitch) Channel not found

javaw_MwGOxzINXb
Any that I tried has not been found.
edit: realized it could have been because of the shaders, but turning them off did not fix this.
1.20.4 Fabric.

Crash on launch when running on Windows 11 64-bit (1.19.2)

I (and a few players on the same server) are experiencing a crash when attempting to run the Minecraft client with the mod installed. For reference, we're using Prism Launcher. I have no issues running the mod on a Linux host.

I've attached the crash log. I can see the error, but I'm not entirely sure what the root cause is. Any support or input would be greatly appreciated. Thanks for your work on this mod!

webstreamer-windows-crash-log.txt

1.20.1

can you back port it to 1.20.1?

Update on WebStreamer, support for 1.20.3/1.20.4

After a long period of abandon, I finally decided to update the mod to the latest Minecraft versions 1.20.3.

It is not planned to support anterior versions, because it's really complicated for now to support multiple versions, I'll always try to support the latest version.

Also, forge is not planned to be supported for the same reason as above.

Youtube support

Since it will get asked eventually, and I can't see an answer to this question
When and if this will support Youtube videos?

1.20.1 support?

Any chance that you would backport the mod for 1.20.1? Your mod looks fantastic thank you.

[request] 1.20.4 port

Hello, I really admire your mod. This is the best mod I have ever seen for watching broadcasts with my friends. It so happens that I wanted to put your mod on the server but the version is too old, I got sad. Is there any plans to update this wonderful mod in the near future? Thank you for your time!

Game crashes if twitch stream ends while webstreamer is viewing it

Was watching a livesteam that was ending and when the streamer ended their stream and sent his viewers to another twitch channel my game crashed.

MC version: fabric 1.20.1
webstreamer version: 1.5.0

This was the relevant part of the logs where the crash happened:
[16:43:10] [Render thread/ERROR]: [DisplayLayerHls:2E5BC9B2] Failed to request playlist, setting interval to 5 seconds.
java.io.IOException: HTTP request failed, status code: 404
at fr.theorozier.webstreamer.display.render.DisplayLayerHls.requestPlaylistBlocking(DisplayLayerHls.java:191) ~[webstreamer-1.5.0.jar:?]
at fr.theorozier.webstreamer.util.AsyncProcessor.lambda$fetch$0(AsyncProcessor.java:71) ~[webstreamer-1.5.0.jar:?]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
at java.lang.Thread.run(Unknown Source) ~[?:?]
[16:43:11] [Render thread/ERROR]: [DisplayLayerHls:2E5BC9B2] Failed to request playlist, setting interval to 5 seconds.
java.io.IOException: HTTP request failed, status code: 404
at fr.theorozier.webstreamer.display.render.DisplayLayerHls.requestPlaylistBlocking(DisplayLayerHls.java:191) ~[webstreamer-1.5.0.jar:?]
at fr.theorozier.webstreamer.util.AsyncProcessor.lambda$fetch$0(AsyncProcessor.java:71) ~[webstreamer-1.5.0.jar:?]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
at java.lang.Thread.run(Unknown Source) ~[?:?]
[16:43:16] [Render thread/ERROR]: [DisplayLayerHls:2E5BC9B2] Failed to request playlist, setting interval to 5 seconds.
java.io.IOException: HTTP request failed, status code: 404
at fr.theorozier.webstreamer.display.render.DisplayLayerHls.requestPlaylistBlocking(DisplayLayerHls.java:191) ~[webstreamer-1.5.0.jar:?]
at fr.theorozier.webstreamer.util.AsyncProcessor.lambda$fetch$0(AsyncProcessor.java:71) ~[webstreamer-1.5.0.jar:?]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
at java.lang.Thread.run(Unknown Source) ~[?:?]
[16:43:16] [Render thread/INFO]: Forget twitch playlist for channel bigguy
[16:43:16] [Render thread/ERROR]: Unreported exception thrown!
java.lang.IllegalStateException: Pose stack not empty
at net.minecraft.class_761.method_22979(class_761.java:1564) ~[client-intermediary.jar:?]
at net.minecraft.class_761.method_22710(class_761.java:1382) ~[client-intermediary.jar:?]
at net.minecraft.class_757.method_3188(class_757.java:1110) ~[client-intermediary.jar:?]
at net.minecraft.class_757.method_3192(class_757.java:880) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1523(class_310.java:1219) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1514(class_310.java:802) ~[client-intermediary.jar:?]
at net.minecraft.client.main.Main.main(Main.java:250) ~[1.20.1-0.15.7.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.7.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.15.7.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.15.7.jar:?]
[16:43:16] [Server thread/INFO]: Stopping server
[16:43:16] [Server thread/INFO]: Saving players
[16:43:16] [Server thread/INFO]: Saving worlds

[Suggestion] Allow placement in survival mode

Hello.
I run a small 1.18.2 modded server and added a crafting recipe for this to be crafted in survival. However, to my bewilderment, it couldn't be placed anywhere. I think that instead of locking out placement to solely creative mode, it should be an option for those in survival to place and break them on the chance something like this were to happen.

Doesn't work on 1.19.2!

I tried using the mod in singleplayer on 1.19.2 and it doesn't seem to be working with m3u8!
image

It does work as expected with other formats

Unable to play streaming video

I set up an M3U8 server to stream through OBS and play it normally when using potplayer, but when I paste the url into the game, it keeps black.
Does this have anything to do with coding patterns and color patterns?
(Using Google Translate may cause grammatical errors)
image
image

[Bug]Unable to Display m3u8 Source on Win11

Issue Description:
I'm currently using version 1.2.3 and have successfully installed FFmpeg on a Windows 11. However, I'm encountering an issue where I'm unable to display m3u8 sources. When attempting to utilize this version, the screen only displays the inputted link and a black background, rather than the content of the m3u8 source.

Steps to Reproduce:

  1. Install and run version 1.2.3 on a Windows 11.
  2. Attempt to load m3u8 sources.

image

Mod tries to load intel drivers on non intel devices.

Hardware info

OS: Fedora 39
Kernel: 6.8.5-201.fc39.x86_64
CPU: AMD Ryzen 7 7730U (16) @ 4.55 GHz
GPU: Integrated GPU
Java Version: 22

Logs

MESA-LOADER: failed to open radeonsi: /usr/lib/x86_64-linux-gnu/GL/default/lib/libdrm_intel.so.1: undefined symbol: drmCloseBufferHandle (search paths /usr/lib/x86_64-linux-gnu/GL/default/lib/dri, suffix _dri)
failed to load driver: radeonsi
MESA-LOADER: failed to open swrast: /usr/lib/x86_64-linux-gnu/GL/default/lib/libdrm_intel.so.1: undefined symbol: drmCloseBufferHandle (search paths /usr/lib/x86_64-linux-gnu/GL/default/lib/dri, suffix _dri)

[Suggestion] Shader support?

Hi, when I use webstreamer with shaders, I get really bright displays.

Without shaders
With shaders (Complementary 4.4 & Iris)

I wonder if it's possible to have the displays be compatible with shaders.
I've seen mods with web-hosted images render properly with shaders, so maybe it can be done?

Iam Music Player

Client only?

Hi, is this a client only mod or do I need to install it on my server too?

[request] 1.20 port

Is this planned? I love using this mod to watch streams with my friends, even if Twitch API has introduced ads back into the m3u8 format, I still enjoy watching it in game. Thanks :D

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.