Setup to test transcoding remotely


Hi everyone,
As I can see from the guide in the documentation, the setup node will be both a broadcaster and a transcoder. I want to test transcoding remotely. Basicly, I want to start a broadcaster only node and a node as transcoder . I know how to transcoder to smart contract as this thread. But I don’t know how to start a broadcaster only node. As I understand, the broadcaster will listen rtmp stream and relay it to target transcoder, right? Can you show me right parameters to setup this sceano? Thanks.


Hey, if you start the node without the --transcoder flag, it will run as a “broadcast only” node.

The only challenge with what you described is that by default the broadcast node will request a transcoder from the on-blockchain protocol, which will assign one pseudo-randomly. If you want to use your own transcoder, then some extra configuration might be in order and I’m not sure we have simple interfaces exposed to do this easily via the HTTP/RTMP API. Maybe @j0sh has an idea of how to set this up easily?


Right now, the easiest way would be to configure a Rinkeby transcoder with a high enough price point (eg, 200wei) such that’s the only option your broadcaster has when the job is assigned.

We also have an isolated test environment with the devenv but that needs some corrections to be compatible with the latest changes. It would also be useful to have an off-chain transcoding mode where a broadcaster could specify its own transcoder(s), but that’s not available right now.


Hi all, I have just tested simple command as in the document:

$ ./livepeer -rinkeby -v 6

Then I try to broadcast a stream to server

$ ffmpeg -re -i example.mp4 -vcodec copy -acodec copy -f flv rtmp://localhost:1935/movie2

And this is what I see in broadcaster log:

I0803 19:38:35.977261   18150 lpms.go:82] LPMS Server listening on rtmp://
I0803 19:38:35.977279   18150 lpms.go:89] HTTP Server listening on
I0803 19:39:33.209670   18150 listener.go:32] RTMP server got upstream: rtmp://localhost:1935/movie2
I0803 19:39:33.922991   18150 mediaserver.go:181] Current deposit is: 100000
I0803 19:39:33.923081   18150 mediaserver.go:212] Cannot automatically detect the video profile - setting it to {P720p30fps16x9 4000k 30 1280x720 16:9}
I0803 19:39:33.923218   18150 mediaserver.go:326] 

Video Created With ManifestID: 122057cbd5f29a84f0b7c5387ddfa53b6683311965bf820130591ebdef10da7cdb539793fda225d0cf00a4691cd2bfe44693dec014c0fd3385ca70b0e9a793120eb0

I0803 19:39:33.923271   18150 mediaserver.go:327] 

hlsStrmID: 122057cbd5f29a84f0b7c5387ddfa53b6683311965bf820130591ebdef10da7cdb539793fda225d0cf00a4691cd2bfe44693dec014c0fd3385ca70b0e9a793120eb0P720p30fps16x9

I0803 19:39:33.923316   18150 lpms.go:139] Segment RTMP Req: rtmp://
I0803 19:39:34.069612   18150 player.go:58] LPMS got RTMP request @ rtmp://

It seems like local lpms server is transcoding instead of a any registered transcoder is transcoding video. A quick check in the code, it seems my thought is right. Is this a bug or am I missing something ?


@tuan3w the broadcaster node only segments the incoming video by changing the container (transmuxing); there’s no decode and re-encode step.