Giter VIP home page Giter VIP logo

picklecast's Introduction

picklecast - Simple Screen Cast Receiver

Screen share to a RaspberryPi or display computer connected to a projector or TV.

Quickstart

Install and start the server on the display computer or RPi:

$ pip install picklecast
$ picklecast
Server address: 192.168.1.100
Display URL: http://localhost:8443/display   http://192.168.1.100:8443/display
Client URL: http://192.168.1.100:8443/

Then open the display URL in a web-browser on the display computer. You can now share your screen from a personal device by visiting the client URL.

Optionally install as a user service on Linux to keep it running the background:

picklecast install_service
systemctl --user daemon-reload
systemctl --user start picklecast

How it Works

Picklecast is just a Python program that serves HTML and relays handshake messages between two browsers. The streaming and displaying is handled in Javascript in the display/client browsers using the WebRTC api.

Caveats

  • Audio sharing only supported when sharing from Chrome on Windows (bugzilla).
  • Currently there can be only one browser open to the display URL at a time
  • Only desktop browsers are supported, as mobile browsers don't support getDisplayMedia
  • I've had issues getting the WebRTC APIs working correctly with Chrome on Windows. Help on this issue would be appreciated.

picklecast's People

Contributors

evidlo avatar grstreten avatar

Stargazers

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

Watchers

 avatar  avatar

picklecast's Issues

websocket is not created correctly in a proxied environment

Since the websocket address is created using window.location.hostname, any information regarding the true URL (e.g. the custom port) is missed.

serverConnection = new WebSocket('wss://' + window.location.hostname + ':8443');

One possible fix would be to use window.location.href and strip the https:// part and the display part, if exists.

Example: window.location.href.replace("https://","").replace("display","").

install_service throws an error

Hello, thank you very much for your work. I am trying picklecast, but when trying to install it as a service I get the following error:

Traceback (most recent call last):
File "/home/user/.env/bin/picklecast", line 33, in
sys.exit(load_entry_point('picklecast==1.0.2', 'console_scripts', 'picklecast')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.env/lib/python3.11/site-packages/picklecast/picklecast.py", line 198, in main
args.func(**vars(args))
File "/home/user/.env/lib/python3.11/site-packages/picklecast/picklecast.py", line 138, in install_service
service = base_dir.joinpath("picklecast.service")
^^^^^^^^
NameError: name 'base_dir' is not defined

What is wrong here?

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.