<commit_before># Live Video Streaming over Solace (BroadcastMe) Samples
## Overview

This project illustrates how one can stream live video via Solace. 

The following diagram shows the flow of video stream from the live source to the receiving device:

![](https://github.com/roberthsieh/broadcastme/blob/master/resources/Diagrams.png)

Note: SMF stands for Solace Message Format and is the wireline message format used by the Solace Java API.

- The InputProxy expects and listens on an UDP port for the live stream. It then encapsulate the UDP packets into SMF as 
binary attachment and forwards them to the Solace Message Router on a topic.  In this scenario, a topic can be viewed as the 'channel name' where the broadcaster is streaming the live video to. The delivery mode can be persistent or direct.

- ffmpeg can be used to broadcast live stream to an UDP port using the mpegts transport protocol. An example command (under linux) would be:

        ffmpeg -f video4linux2 -i /dev/video0 -b 900k -f mpegts udp://localhost:1235

- The OutputProxy creates a temporary queue with a topic (i.e. stream channel) subscription.  It then receives messages 
from its temporary queue and redirects the encapsulated UDP packet to the specified forwarding host and port.
<commit_msg>more udpate on README<commit_after># Live Video Streaming over Solace (BroadcastMe) Samples
## Overview

This project illustrates how one can stream live video via Solace. 

The following diagram shows the flow of video stream from the live source to the receiving device:

![](https://github.com/roberthsieh/broadcastme/blob/master/resources/Diagrams.png)

Note: SMF stands for Solace Message Format and is the wireline message format used by the Solace Java API.

- The InputProxy expects and listens on an UDP port for the live stream. It then encapsulate the content of UDP packets into SMF as 
binary attachment and forwards them to the Solace Message Router on a topic.  In this scenario, a topic can be viewed as the 'channel name' where the broadcaster is streaming the live video to. The delivery mode can be persistent or direct.

- ffmpeg can be used to broadcast live stream to an UDP port using the mpegts transport protocol. An example command (under linux) would be:

        ffmpeg -f video4linux2 -i /dev/video0 -b 900k -f mpegts udp://localhost:1235

- The OutputProxy creates a temporary queue with a topic (i.e. stream channel) subscription.  It then receives messages 
from its temporary queue, re-encapsulates the content into UDP packets and redirect to the specified host and port.

{'fraction_non_alphanumeric': 0.04561267877850792, 'fraction_numerical': 0.007730962504831852, 'mean_word_length': 4.176, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '691944', 'n_tokens_mistral': 701, 'n_tokens_neox': 655, 'n_words': 384}