Question / Help Linux - True CBR streaming ?

1G6tem

New Member
Hello,
is OBS able to stream a true CBR HD video file (1920x1080p) in MPEG TS format, on Raspberry Pi with Linux Debian (Raspbian), or on a Linux with Intel architecture ?
If so, is there a command line interface to launch such a task, and is there a man page or a documentation file for the CLI ?
Thank you in advance for your reply.
Regards.
 

dping

Active Member
Hello,
is OBS able to stream a true CBR HD video file (1920x1080p) in MPEG TS format, on Raspberry Pi with Linux Debian (Raspbian), or on a Linux with Intel architecture ?
If so, is there a command line interface to launch such a task, and is there a man page or a documentation file for the CLI ?
Thank you in advance for your reply.
Regards.
Streaming from or streaming to? I believe ffmpeg is what it uses underneath it all, but I could be wrong. I have not had OBS working on a raspberry pi yet but with OBS studio coming out, I could see it happening with the right dependencies.
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
CBR is used for streaming by default. Currently raspberry pi isn't supported because we have x86 intrinsics that need to be removed from the program before it'll compile on ARM, though I'm fairly sure that a raspberry pi wouldn't be able to run it due to insufficient resources (I think)
 

dping

Active Member
CBR is used for streaming by default. Currently raspberry pi isn't supported because we have x86 intrinsics that need to be removed from the program before it'll compile on ARM, though I'm fairly sure that a raspberry pi wouldn't be able to run it due to insufficient resources (I think)
the hardware (h264) decoder on the pi model Bs can do 1080@30 without a huccup, but I wasn't sure if the question was aimed at that or not. encoding I'm sure would be much more intensive on the CPU

EDIT: correction, its a hardware decoder as well. For VC1 and MPEG2 I think you need to purchase a license though.
 

1G6tem

New Member
Thanks to all for your replies.
@dping : I may have been not specific enough when explaining my need, sorry. I want to read a file in MPEG-TS format (or whatever HD format that exists) and stream it to the network. I just need a command line interface to launch the streaming, but I want TRUE CBR throughput. I previously tested VLC : it did the job quite well, but as far as I can see it is not able to produce a true CBR stream, i.e. a stream with null packets (fillers). So I thought maybe OBS could solve my problem.
Basically, my need is to send an HD video stream at 25 fps and 15 Mbps to a network with a true CBR, so even a software able to send a true CBR stream back would be enough for me.
@Jim : what exactly do you mean by "x86 intrinsics" ? Do you use x86 specific assembly code in OBS ? (Sorry, I had no time to browse the code).
Do you know if I can use only a subset of the OBS code to stream an HD file to the network (over UDP) with a true CBR, i.e. generating null packets (fillers), and thus have a truly constant bit rate ? I don't need all OBS's functionnalities.
I also tried ffmpeg and avconv, but didn't find the appropriate options. Does OBS rely on any of those softwares ?

Regarding the CPU power of the Raspberry Pi model B+, it is sufficient enough to stream an HD video at 25 fps (my need) at 15 Mbps with VLC (cvlc), using roughly 80% to 90% of the CPU. The display is not done by the Raspberry, of course.
Thank you in advance for your replies.
 

dping

Active Member
Thanks to all for your replies.
@dping : I may have been not specific enough when explaining my need, sorry. I want to read a file in MPEG-TS format (or whatever HD format that exists) and stream it to the network. I just need a command line interface to launch the streaming, but I want TRUE CBR throughput. I previously tested VLC : it did the job quite well, but as far as I can see it is not able to produce a true CBR stream, i.e. a stream with null packets (fillers). So I thought maybe OBS could solve my problem.
Basically, my need is to send an HD video stream at 25 fps and 15 Mbps to a network with a true CBR, so even a software able to send a true CBR stream back would be enough for me.
@Jim : what exactly do you mean by "x86 intrinsics" ? Do you use x86 specific assembly code in OBS ? (Sorry, I had no time to browse the code).
Do you know if I can use only a subset of the OBS code to stream an HD file to the network (over UDP) with a true CBR, i.e. generating null packets (fillers), and thus have a truly constant bit rate ? I don't need all OBS's functionnalities.
I also tried ffmpeg and avconv, but didn't find the appropriate options. Does OBS rely on any of those softwares ?

Regarding the CPU power of the Raspberry Pi model B+, it is sufficient enough to stream an HD video at 25 fps (my need) at 15 Mbps with VLC (cvlc), using roughly 80% to 90% of the CPU. The display is not done by the Raspberry, of course.
Thank you in advance for your replies.

So from your raspberry pi aka encoding. with obs, that is not possible because yes, OBS1/OBS studio relies on x86 libs, OBS studio breaks away from windows but isn't compiled for arm. @Jim can probably explain this much more in depth than I.

the second issue is that I do not know if there is any linux package that takes advantage of the hardware h264 encoder in the raspi yet (I could be wrong)
 
you bring up a very specific use case. i have a banana pi and have been wanting to try out obs using it but you're really asking a lot from it. think about it, you'll have to either record using an external capture card (to take the load off the pi) and then you're asking it to encode whatever game you're playing (if not using an external usb capture device) which requires a lot. as others have said, obs-studio isn't going to compile for ARM yet so I wouldn't hold your breath but @Jim would better be able to tell if they're even considering making obs-studio ARM compatible.
 
Top