This repository is to store information for the project as part of #cryptolife hackathon to implement livestreaming functionality in Status App using Livepeer's open-source video infrastructure.
Status is holding a hackathon from 26-29 October 2018. The objective is to develop apps and dApps to allow more people to live a cryptolife: a life based entirely on cryptocurrencies.
Status has a Mobile Ethereum Operating System app for Android, which includes wallet functionality.
Livepeer is an open-source video infrastructure, with services for livestreaming.
The objective of this project is to build minimal viable livestreaming functionality in Status App for Android, using Livepeer video infrastructure.
The team was able to add a "go live" button in the "New" page in status (the "+" sign on the top right corner). The button should bring up a camera screen that enables a broadcast, but unfortunately we couldn't test it due to the lack of camera access in the iOS simulator. (We couldn't get Android to compile).
We used an existing react-native RTMP library to do the implementation, and the code lives in the livepeer
branch of @gomesalexandre's repo.
Here is the instruction to run the repo:
- Clone the repo
git clone https://github.com/gomesalexandre/status-react.git
- Check out the
livepeer
branch bycd status-react && git checkout livepeer && cd ..
- Install the
nodemediaclient
react-native module:yarn add react-native-nodemediaclient
- Link the module:
react-native link
- Install the pod:
cd ios && pod install && cd ..
- Run the status app as you would:
react-native run-ios
The next step of the project is to test the camera on a real device, and to create a video ingest node discovery service so a number of Livepeer ingest nodes can be discovered, and the rtmp connection information can be fill in to the NodeCameraView
The video ingest node discovery service can start as a simple service that has knowledge about Status-deployed Livepeer nodes. The service can find a ingest node that doesn't currently have a stream running, and return the RTMP endpoint to the Status client so it can send the broadcast video to that ingest node.
@ericxtang is happy to help advise the creation of such service.