Modular Media Server - User Guide - Basic Modular Media Server implementation

From RidgeRun Developer Connection
Jump to: navigation, search



Previous: User Guide/Interactive Console Index Next: Contact_Us





Basic x86 Modular Media Server Implementation

In the case that you don't want to use the command-line interface, you can use the Media Server class. To show the use Media Server class, let's build the next basic media group.


Error creating thumbnail: Unable to save thumbnail to destination
Figure 1: Basic X86 Modular Media Server Implementation media group


To interact with a Modular Media Server, a Media Server instance must be initialized.

 
logger = ConsoleLogger()
media_server = MediaServer(logger)

Next, we will create the source, encoder, and file container media group description, as follows:

 
source = [
    {
        "type": "V4L2CaptureEntity",
        "entity": "/dev/video0",
        "input_name": "none",
        "output_name": "0",
    }
]
encoder = [{
        "type": "X86EncoderEntity",
        "entity": "vaapih264enc",
        "input_name": "0",
        "output_name": "1",
    }
]
file = [{
        "type": "FileRecorderEntity",
        "entity": "mp4mux",
        "input_name": "1",
        "output_name": "video_test.mp4",
    }
]

Next, we are going to create the three media groups:

media_server.create_media_group("sourcer_media_group", source)
media_server.create_media_group("encoder_media_group", encoder)
media_server.create_media_group("file_media_group", file)

We start the pipelines and let them run for 25 seconds:

media_server.start("sourcer_media_group")
media_server.start("encoder_media_group")
media_server.start("file_media_group")
 
time.sleep(25)

Finally, stop the pipeline. A file with the name of "video_test.mp4" will be generated in the project directory.

media_server.stop("sourcer_media_group")
media_server.stop("encoder_media_group")
media_server.stop("file_media_group")



Previous: User Guide/Interactive Console Index Next: Contact_Us