Live Streaming bit rate?

Joined
Jun 18, 2015
Messages
4
Reaction score
0
Age
54
Has anyone found a way to control the live streaming bit rate or any other stream profile settings? It seems to be locked at 720p and several megabits per second (haven't had a chance to measure how many). I have dug through the settings and lots of fruitless Google search results trying to find a way.

This is a problem if you have constrained upstream bandwidth.

It seems that many situations where live streaming may be actually useful (e.g. at an event) may present you with limited data rates. While streaming several meg at 720p might make for a nice picture, it's worthless if you can't get the bits to YouTube. Given the option, lowering the bit rate, frame rate, and/or resolution would seem to be good compromises.

Is the DJI app just trying to upload the FPV stream from the P3 without transcoding it first? It seems like many devices would have the horsepower to downconvert. Live streaming from the camera is supported in many apps. These devices have hardware support for video scaling and encoding.

About the only other option I can imagine is trying to use a server in the middle (might be an interesting app for a Raspberry Pi 2) to downconvert the video before upload. I have to explore the custom mode in streaming further to see if this would be possible.

Thoughts? Experiences?
 
Has anyone found a way to control the live streaming bit rate or any other stream profile settings? It seems to be locked at 720p and several megabits per second (haven't had a chance to measure how many). I have dug through the settings and lots of fruitless Google search results trying to find a way.

This is a problem if you have constrained upstream bandwidth.

It seems that many situations where live streaming may be actually useful (e.g. at an event) may present you with limited data rates. While streaming several meg at 720p might make for a nice picture, it's worthless if you can't get the bits to YouTube. Given the option, lowering the bit rate, frame rate, and/or resolution would seem to be good compromises.

Is the DJI app just trying to upload the FPV stream from the P3 without transcoding it first? It seems like many devices would have the horsepower to downconvert. Live streaming from the camera is supported in many apps. These devices have hardware support for video scaling and encoding.

About the only other option I can imagine is trying to use a server in the middle (might be an interesting app for a Raspberry Pi 2) to downconvert the video before upload. I have to explore the custom mode in streaming further to see if this would be possible.

Thoughts? Experiences?
It just pumps the decoded lightbridge stream to youtube as is. There are no options to change the rate. And while I agree you that many devices have the horsepower to down convert the feed, no device has the horsepower to decode 720p in, down convert 720 to something else, and pump to youtube simultaneously. Putting a Pi in the middle to do the down convert is an interesting idea.
 
There is the option in advanced to push to a different server. Depending on the protocol. I did some testing several years ago on a device that would multipath with up to 4 different cellular data cards (could be different providers) to push data out.
 
I've read of a few examples of people real time transcoding 720p from one of the rPi cameras to something lower res and lower bit rate using ffmpeg. If I recall correctly the rPi arm chip has similar hardware codec support to many mobile devices and ffmpeg can use that. You might have to drop the res to 480p or 360p but given the circumstances that's better than not being able to stream at all.

Combine that with something like nginex to capture the RTMP locally (just enter the local server address in the custom dialog for YouTube streaming) and it might be possible. Sounds like a weekend project (whenever I have a free weekend).

https://plus.google.com/+WolfgangSchlatter/posts/2L5fRou17AX

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/
 
nginx module can rewrite the bitrate, This might work.
exec ffmpeg -i rtmp://localhost/src/$name
-c:a libfdk_aac -b:a 32k -c:v libx264 -b:v 128K -f flv rtmp://ltwitchorwhatever

rtmp {
server {
listen 1935;

application src {
live on;

exec ffmpeg -i rtmp://localhost/src/$name
-c:a libfdk_aac -b:a 32k -c:v libx264 -b:v 128K -f flv rtmp://localhost/hls/$name_low
-c:a libfdk_aac -b:a 64k -c:v libx264 -b:v 256k -f flv rtmp://localhost/hls/$name_mid
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 512K -f flv rtmp://localhost/hls/$name_hi;
}

application hls {
live on;

hls on;
hls_path /tmp/hls;
hls_nested on;

hls_variant _low BANDWIDTH=160000;
hls_variant _mid BANDWIDTH=320000;
hls_variant _hi BANDWIDTH=640000;
}
}
}
 
Last edited:

Members online

No members online now.

Forum statistics

Threads
143,085
Messages
1,467,522
Members
104,961
Latest member
Dragonslair