5g-mag / rt-mbms-mw Goto Github PK
View Code? Open in Web Editor NEWMBMS - Middleware
Home Page: https://www.5g-mag.com/5gbroadcast
License: Other
MBMS - Middleware
Home Page: https://www.5g-mag.com/5gbroadcast
License: Other
As we agreed to rename the project to rt-mw we should rename the relevant parts in the code as well.
Replace obeca
with 5gmag-rt
.
Replace process name gw
with mw
As an additional use case files can also be delivered via 5G broadcast. For instance to
GanttStart: 2022-08-31
GanttDue: 2022-10-30
The reference client functionality should be extended to low latency support to enable low latency (LL) for LTE-based 5G terrestrial broadcast and to provide a comparable latency with LL OTT streams provided via CDN.
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Which parts of the reference client are affected
Who takes care about the develepment
rt-mbms-mw checks if the filename ‚bootstrap.multipart‘ is present. R&S uses a file named ‚sa_multipart.gz‘.
To Reproduce
no service detected when receiving HLS odr DASH
Expected behavior
The service anouncement should be independent of the file name. R&S told me that this could be done via correct TMGI-Numbering according 3gpp standard.
Workaround could be to configure filename for SA in config file for mw.
The API path should be changed once the rt-wui is refactored as well from api_path: "gw-api";
to api_path: "mw-api";
The configuration files in supporting_files
should be moved to https://github.com/5G-MAG/rt-common-shared
In addition to a single audio and video track it should be possible to deliver additional tracks via broadcast. For instance
With the new SA format used for seamless switching the current HLS recordings provided by ORS are not working anymore. The legacy SA format used for these recordings should still be supported even if seamless switching is not activated.
Add support for the legacy SA format and allow users to define the target format as part of the configuration file.
MIME-Version: 1.0
Content-Type: multipart/related; boundary="xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--"; type="application/mbms-envelope+xml"
Content-Description: LTE MBMS Service Announcement
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/mbms-envelope+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///envelope.xml
<?xml version="1.0" encoding="utf-8"?>
<metadataEnvelope xmlns="urn:3gpp:metadata:2005:MBMS:envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:3gpp:metadata:2005:MBMS:envelope MetadataEnvelope.xsd">
<item contentType="application/sdp"
metadataURI="file:///TMGI-0x1009f165.sdp"
validFrom="2021-09-02T07:45:33Z"
validUntil="2051-08-26T07:45:33Z"
version="1"/>
<item contentType="application/vnd.apple.mpegurl"
metadataURI="file:///TMGI-0x1009f165.m3u8"
validFrom="2021-09-02T07:45:33Z"
validUntil="2051-08-26T07:45:33Z"
version="1"/>
<item contentType="application/vnd.apple.mpegurl"
metadataURI="http://10.160.82.131/out/u/bbb/qxa/manifest.m3u8"
validFrom="2021-09-02T07:45:33Z"
validUntil="2051-08-26T07:45:33Z"
version="1"/>
<item contentType="application/mbms-user-service-description+xml"
metadataURI="file:///usdBundle.xml"
validFrom="2021-09-02T07:45:33Z"
validUntil="2051-08-26T07:45:33Z"
version="1"/>
<item contentType="application/mbms-schedule+xml"
metadataURI="file:///TMGI-0x1009f165schedule.xml"
validFrom="2021-09-02T07:45:33Z"
validUntil="2051-08-26T07:45:33Z"
version="1"/>
</metadataEnvelope>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/sdp
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165.sdp
v=0
o=ROHDE-SCHWARZ-BSCC 269087077 1630568733 IN IP4 11.11.11.11
s=HLS Streaming Session 0x1009f165
i=File Download Session
t=3839557533 4785637533
a=mbms-mode:broadcast-mbsfn 269087077
c=IN IP4 238.1.1.111/127
b=AS:1699
m=application 40101 FLUTE/UDP 0
a=flute-tsi:16
a=flute-ch:1
a=3GPP-QoE-Metrics:metrics={Object_Loss};rate=null;resolution=10
a=3GPP-QoE-Metrics:metrics={Network_Resource};rate=null;resolution=10
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/vnd.apple.mpegurl
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:CODECS="avc1.4D401E,mp4a.40.2",BANDWIDTH=1427133,FRAME-RATE=25.000,RESOLUTION=640x360
out/u/bbb/qxa/manifest_3.m3u8?m=1614073235
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/vnd.apple.mpegurl
Content-Transfer-Encoding: 7bit
Content-Location: http://10.160.82.131/out/u/bbb/qxa/manifest.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=3847133,AVERAGE-BANDWIDTH=3847133,RESOLUTION=1280x720,FRAME-RATE=25.000,CODECS="avc1.4D401F,mp4a.40.2"
manifest_1.m3u8?m=1614073235
#EXT-X-STREAM-INF:BANDWIDTH=2857098,AVERAGE-BANDWIDTH=2857098,RESOLUTION=854x480,FRAME-RATE=25.000,CODECS="avc1.4D401E,mp4a.40.2"
manifest_2.m3u8?m=1614073235
#EXT-X-STREAM-INF:BANDWIDTH=1427133,AVERAGE-BANDWIDTH=1427133,RESOLUTION=640x360,FRAME-RATE=25.000,CODECS="avc1.4D401E,mp4a.40.2"
manifest_3.m3u8?m=1614073235
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/mbms-user-service-description+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///usdBundle.xml
<?xml version="1.0" encoding="utf-8"?>
<bundleDescription xmlns="urn:3GPP:metadata:2005:MBMS:userServiceDescription"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sv="urn:3gpp:metadata:2009:MBMS:schemaVersion"
xmlns:r7="urn:3GPP:metadata:2007:MBMS:userServiceDescription"
xmlns:r8="urn:3GPP:metadata:2008:MBMS:userServiceDescription"
xmlns:r9="urn:3GPP:metadata:2009:MBMS:userServiceDescription"
xmlns:r12="urn:3GPP:metadata:2013:MBMS:userServiceDescription"
xmlns:r14="urn:3GPP:metadata:2017:MBMS:userServiceDescription"
xmlns:r15="urn:3GPP:metadata:2018:r15:MBMS:userServiceDescription"
xsi:schemaLocation="urn:3GPP:metadata:2005:MBMS:userServiceDescription USD-schema-main.xsd">
<sv:schemaVersion>1</sv:schemaVersion>
<userServiceDescription serviceId="urn:rohde-schwarz:service:16.0"
r7:serviceClass="urn:oma:bcast:ext_bsc_3gpp:bscc:rsservice1"
r14:romService="true">
<name>Test Service TMGI-0x1009f165</name>
<name lang="EN">EN: Test Service TMGI-0x1009f165</name>
<name lang="DE">DE: Test Service TMGI-0x1009f165</name>
<serviceLanguage>EN</serviceLanguage>
<serviceLanguage>DE</serviceLanguage>
<requiredCapabilities>
<feature>23</feature>
<feature>27</feature>
</requiredCapabilities>
<deliveryMethod sessionDescriptionURI="file:///TMGI-0x1009f165.sdp">
<sv:delimiter>0</sv:delimiter>
<r12:broadcastAppService>
<r12:basePattern>out/u/bbb/qxa/manifest_3.m3u8?m=1614073235</r12:basePattern>
<r12:basePattern>file:///TMGI-0x1009f165.m3u8</r12:basePattern>
<r12:serviceArea>2</r12:serviceArea>
</r12:broadcastAppService>
<sv:delimiter>0</sv:delimiter>
</deliveryMethod>
<r12:appService appServiceDescriptionURI="http://10.160.82.131/out/u/bbb/qxa/manifest.m3u8"
mimeType="application/vnd.apple.mpegurl"/>
<r9:schedule>
<r9:scheduleDescriptionURI>file:///TMGI-0x1009f165schedule.xml</r9:scheduleDescriptionURI>
</r9:schedule>
<sv:delimiter>0</sv:delimiter>
<r9:availabilityInfo>
<r9:infoBinding>
<r9:serviceArea>2</r9:serviceArea>
</r9:infoBinding>
</r9:availabilityInfo>
</userServiceDescription>
</bundleDescription>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/mbms-schedule+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165schedule.xml
<?xml version="1.0" encoding="utf-8"?>
<scheduleDescription xmlns="urn:3gpp:metadata:2011:MBMS:scheduleDescription"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sv="urn:3gpp:metadata:2009:MBMS:schemaVersion"
xsi:schemaLocation="urn:3gpp:metadata:2011:MBMS:scheduleDescription ScheduleDescription.xsd"
scheduleUpdate="2021-09-02T07:45:33Z">
<sv:schemaVersion>1</sv:schemaVersion>
<serviceSchedule>
<sessionSchedule>
<start>2021-09-02T07:45:33Z</start>
<stop>2051-08-26T07:45:33Z</stop>
<index>0</index>
<sv:delimiter>0</sv:delimiter>
<sv:delimiter>0</sv:delimiter>
</sessionSchedule>
</serviceSchedule>
</scheduleDescription>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Support for the MBMS API as defined in 26.347 - Multimedia Broadcast/Multicast Service (MBMS); Application Programming Interface and URL (Release 16)
Describe the bug
Based on the discussion here: 5G-MAG/Getting-Started#22
Nginx does not have rt-mbms configuration. This used to get installed by the mw process, but it looks like during the name change we didn't move it to wui as intended.
Current workaround: Copying the nginx site configuration from here:
https://github.com/5G-MAG/rt-mbms-mw/blob/874c753da43080c2294a3ddaea1d7ab2a4ea293e/supporting_files/obeca
to
/etc/nginx/sites-available/rt-wui
Expected behavior
Configuration should be installed automatically
Investigate if additional changes are required to support DRM. Usual workflow
Describe the bug
with the latest middleware update (v0.10.0) it seems that the service announcement is not interpreted correctly.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
With version 0.9 the SA is correctly recognized and the two flute streams are displayed (SA and HLS video)
Desktop and laptop:
Log output
`sudo mw -l1
mw[19804]: 5g-mag-rt mw v0.10.0 starting up
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: Starting FLUTE receiver on 238.1.1.95:40085 for TSI 0
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: Creating File from FileEntry
mw[19804]: Allocating buffer
mw[19804]: received TOI 0 SBN 0 ID 0
mw[19804]: File with TOI 0 completed
mw[19804]: Received new FDT with instance ID 65:
<FDT-Instance Expires="3878639203"
xmlns="urn:IETF:metadata:2005:FLUTE:FDT"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mbms2007="urn:3GPP:metadata:2007:MBMS:FLUTE:FDT"
mw[19804]: Destroying File
mw[19804]: Freeing buffer
mw[19804]: Starting reception for file with TOI 65: sa_multipart (multipart/related)
mw[19804]: Creating File from FileEntry
mw[19804]: Allocating buffer
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: received TOI 65 SBN 0 ID 0
mw[19804]: MD5 mismatch for TOI 65, discarding
mw[19804]: received TOI 65 SBN 0 ID 1
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: received TOI 65 SBN 0 ID 2
mw[19804]: received TOI 65 SBN 0 ID 3
mw[19804]: received TOI 65 SBN 0 ID 4
mw[19804]: received TOI 65 SBN 0 ID 5
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: received TOI 65 SBN 0 ID 6
mw[19804]: received TOI 65 SBN 0 ID 7
mw[19804]: received TOI 65 SBN 0 ID 8
mw[19804]: received TOI 65 SBN 0 ID 9
mw[19804]: request for /mw-api/files
mw[19804]: request for /mw-api/services
mw[19804]: received TOI 65 SBN 0 ID 10
mw[19804]: received TOI 65 SBN 0 ID 11
mw[19804]: received TOI 65 SBN 0 ID 12
mw[19804]: received TOI 65 SBN 0 ID 13
`
Problem:
Added a screenshot
Provide a setup to use and test the rt-mbms-mw without the need to the rt-mbms modem
The idea is the following:
This can be used for:
To simplify development seamless switching shall be supported with a local testsetup based on a watchfolder mechanism
Additional information can be found here: https://websites.fraunhofer.de/video-dev/5g-mag-reference-tools-seamless-switching-between-broadcast-and-broadband-delivery/
We are experiencing difficulties in reproducing DASH streaming from a system composed by
We can observe that:
The modem works correctly and shows no errors.
At the output of the mw, the segment files can be downloaded but the index seems missing, even if it is present at the BSCC side.
Using the rt-wui application or other players, no video can be reproduced
We see the following fields at http://127.0.0.1:3020/mw-api/services:
m3u = “”
sdp = “v=0\no=ROHDE-SCHWARZ-BSCC 269087077 1668670914 IN IP4 11.11.11.11\ns=DASH Streaming Session 0x1009f165\ni=File Download
Session\nt=3877659714 4823739714\na=mbms-mode:broadcast-mbsfn 269087077\nc=IN IP4 238.1.1.111/127\na=source-filter: incl IN IP4 * 192.168.0.1
\nb=AS:4000\nm=application 40101 FLUTE/UDP 0\na=flute-tsi:16\na=flute-ch:1\na=3GPP-QoE-Metrics:metrics={Object_Loss};rate=null;resolution=10\na=
3GPP-QoE-Metrics:metrics={Network_Resource};rate=null;resolution=10\n”
service_description = “”
service_name = “”
service_tmgi = “00000009f165”
stream_mcast = “238.1.1.111:40101”
stream_tmgi = “00001009f165”
stream_type = “FLUTE/UDP”
We are able to transmit and receive correctly HLS streaming with the same chain.
Are you aware of issues with the DASH configuration at the 5G-MAG receiver or specific settings at the transmitter side ?
Investigate what needs to be done to support HLS and DASH CMAF low latency streaming. To be clarified:
availabilityStartTime
and availabilityTimeOffset
With the new SA format used for seamless switching the current DASH recordings provided by ORS are not working anymore. The legacy SA format used for these recordings should still be supported even if seamless switching is not activated.
Add support for the legacy SA format and allow users to define the target format as part of the configuration file.
MIME-Version: 1.0
Content-Type: multipart/related; boundary="xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--"; type="application/mbms-envelope+xml"
Content-Description: LTE MBMS Service Announcement
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/mbms-envelope+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///envelope.xml
<?xml version="1.0" encoding="utf-8"?>
<metadataEnvelope xmlns="urn:3gpp:metadata:2005:MBMS:envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:3gpp:metadata:2005:MBMS:envelope MetadataEnvelope.xsd">
<item contentType="application/sdp"
metadataURI="file:///TMGI-0x1009f165.sdp"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
<item contentType="application/dash+xml"
metadataURI="file:///TMGI-0x1009f165.mpd"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
<item contentType="application/dash+xml"
metadataURI="http://10.160.82.131/out/u/bbb/q6a/manifest.mpd"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
<item contentType="r9:mediaPresentationDescription"
metadataURI="file:///TMGI-0x1009f165_video.ini"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
<item contentType="r9:mediaPresentationDescription"
metadataURI="file:///TMGI-0x1009f165_audio.ini"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
<item contentType="application/mbms-user-service-description+xml"
metadataURI="file:///usdBundle.xml"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
<item contentType="application/mbms-schedule+xml"
metadataURI="file:///TMGI-0x1009f165schedule.xml"
validFrom="2021-09-02T08:29:39Z"
validUntil="2051-08-26T08:29:39Z"
version="1"/>
</metadataEnvelope>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/sdp
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165.sdp
v=0
o=ROHDE-SCHWARZ-BSCC 269087077 1630571379 IN IP4 11.11.11.11
s=DASH Streaming Session 0x1009f165
i=File Download Session
t=3839560179 4785640179
a=mbms-mode:broadcast-mbsfn 269087077
c=IN IP4 238.1.1.111/127
b=AS:3045
m=application 40101 FLUTE/UDP 0
a=flute-tsi:16
a=flute-ch:1
a=3GPP-QoE-Metrics:metrics={Object_Loss};rate=null;resolution=10
a=3GPP-QoE-Metrics:metrics={Network_Resource};rate=null;resolution=10
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/dash+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165.mpd
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xmlns:scte35="urn:scte:scte35:2013:xml"
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
id="158"
type="dynamic"
publishTime="2021-09-02T08:29:28"
minimumUpdatePeriod="PT25S"
availabilityStartTime="2021-03-28T14:44:51Z"
minBufferTime="PT60S"
suggestedPresentationDelay="PT25.000S"
timeShiftBufferDepth="PT92.160S"
profiles="urn:hbbtv:dash:profile:isoff-live:2012,urn:mpeg:dash:profile:isoff-live:2011">
<Period start="PT0.000S"
id="1">
<AdaptationSet mimeType="video/mp4"
scanType="progressive"
segmentAlignment="true"
startWithSAP="1"
bitstreamSwitching="true">
<Representation id="1"
width="854"
height="480"
sar="1:1"
frameRate="25/1"
bandwidth="2499968"
codecs="avc1.4D401E">
<SegmentTemplate timescale="25"
media="manifest_video_1_1_$Number$.mp4?m=1614073273"
initialization="TMGI-0x1009f165_video.ini"
startNumber="1774560">
<SegmentTimeline>
<S t="340714524"
d="192"
r="11"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet mimeType="audio/mp4"
segmentAlignment="0">
<Representation id="2"
bandwidth="97394"
audioSamplingRate="48000"
codecs="mp4a.40.2">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011"
value="2"/>
<SegmentTemplate timescale="48000"
media="manifest_audio_1_3_$Number$.mp4?m=1614073273"
initialization="TMGI-0x1009f165_audio.ini"
startNumber="1774560">
<SegmentTimeline>
<S t="654171888128"
d="368640"
r="11"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/dash+xml
Content-Transfer-Encoding: 7bit
Content-Location: http://10.160.82.131/out/u/bbb/q6a/manifest.mpd
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="158" type="dynamic" publishTime="2021-09-02T08:29:28" minimumUpdatePeriod="PT25S" availabilityStartTime="2021-03-28T14:44:51Z" minBufferTime="PT60S" suggestedPresentationDelay="PT25.000S" timeShiftBufferDepth="PT92.160S" profiles="urn:hbbtv:dash:profile:isoff-live:2012,urn:mpeg:dash:profile:isoff-live:2011">
<Period start="PT0.000S" id="1">
<AdaptationSet mimeType="video/mp4" scanType="progressive" segmentAlignment="true" startWithSAP="1" bitstreamSwitching="true">
<Representation id="1" width="854" height="480" sar="1:1" frameRate="25/1" bandwidth="2499968" codecs="avc1.4D401E">
<SegmentTemplate timescale="25" media="manifest_video_1_1_$Number$.mp4?m=1614073273" initialization="manifest_video_1_1_init.mp4?m=1614073273" startNumber="1774560">
<SegmentTimeline>
<S t="340714524" d="192" r="11"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet mimeType="audio/mp4" segmentAlignment="0">
<Representation id="2" bandwidth="97394" audioSamplingRate="48000" codecs="mp4a.40.2">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
<SegmentTemplate timescale="48000" media="manifest_audio_1_3_$Number$.mp4?m=1614073273" initialization="manifest_audio_1_3_init.mp4?m=1614073273" startNumber="1774560">
<SegmentTimeline>
<S t="654171888128" d="368640" r="11"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: r9:mediaPresentationDescription
Content-Transfer-Encoding: base64
Content-Location: file:///TMGI-0x1009f165_video.ini
AAAAHGZ0eXBpc29tAAAAAWlzb21hdmMxZGFzaAAAAtBtb292AAAAbG12aGQAAAAA
3VY70d1WO9EAAAAZAAAAAAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
AAAAG2lvZHMAAAAAEA0AT////3//DgQAAAABAAACGXRyYWsAAABcdGtoZAAAAAfd
VjvR3VY70QAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA
AAAAAAEAAAAAAAAAAAAAAAAAAEAAAAADVgAAAeAAAAAAAbVtZGlhAAAAIG1kaGQA
AAAA3VY70d1WO9EAAAAZAAAAAFXEAAAAAAA8aGRscgAAAAAAAAAAdmlkZQAAAAAA
AAAAAAAAAEVUSSBJU08gVmlkZW8gTWVkaWEgSGFuZGxlcgAAAAFRbWluZgAAABR2
bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAA
AAABAAABEXN0YmwAAADFc3RzZAAAAAAAAAABAAAAtWF2YzEAAAAAAAAAAQAAAAAA
AAAAAAAAAAAAAAADVgHgAEgAAABIAAAAAAAAAAEPRWxlbWVudGFsIEguMjY0AAAA
AAAAAAAAAAAAAAAAAAAY//8AAAAQcGFzcAAAAAEAAAABAAAAO2F2Y0MBTUAe/+EA
JCdNQB65EBsHvN4CIAAAAwAgAAAGXEgACYlgABMS1e9wHwiEagEABCj+PIAAAAAU
YnRydAAAAAAAAAAAAAAAAAAAABBzdHRzAAAAAAAAAAAAAAAQc3RzYwAAAAAAAAAA
AAAAFHN0c3oAAAAAAAAAAAAAAAAAAAAQc3RjbwAAAAAAAAAAAAAAKG12ZXgAAAAg
dHJleAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAA==
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: r9:mediaPresentationDescription
Content-Transfer-Encoding: base64
Content-Location: file:///TMGI-0x1009f165_audio.ini
AAAAHGZ0eXBpc29tAAAAAWlzb21hdmMxZGFzaAAAAmJtb292AAAAbG12aGQAAAAA
3VY70d1WO9EAALuAAAAAAAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
AAAAG2lvZHMAAAAAEA0AT////v7/DgQAAAABAAABq3RyYWsAAABcdGtoZAAAAAfd
VjvR3VY70QAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAQAAAAAAAAAAAAAA
AAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAUdtZGlhAAAAIG1kaGQA
AAAA3VY70d1WO9EAALuAAAAAAFXEAAAAAAA8aGRscgAAAAAAAAAAc291bgAAAAAA
AAAAAAAAAEVUSSBJU08gQXVkaW8gTWVkaWEgSGFuZGxlcgAAAADjbWluZgAAABBz
bWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEA
AACnc3RibAAAAFtzdHNkAAAAAAAAAAEAAABLbXA0YQAAAAAAAAABAAAAAAAAAAAA
AgAQAAAAALuAAAAAAAAnZXNkcwAAAAADGQAAAAQRQBUAAAAAAAAAAAAAAAUCEZAG
AQIAAAAQc3R0cwAAAAAAAAAAAAAAEHN0c2MAAAAAAAAAAAAAABRzdHN6AAAAAAAA
AAAAAAAAAAAAEHN0Y28AAAAAAAAAAAAAAChtdmV4AAAAIHRyZXgAAAAAAAAAAQAA
AAEAAAAAAAAAAAAAAAA=
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/mbms-user-service-description+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///usdBundle.xml
<?xml version="1.0" encoding="utf-8"?>
<bundleDescription xmlns="urn:3GPP:metadata:2005:MBMS:userServiceDescription"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sv="urn:3gpp:metadata:2009:MBMS:schemaVersion"
xmlns:r7="urn:3GPP:metadata:2007:MBMS:userServiceDescription"
xmlns:r8="urn:3GPP:metadata:2008:MBMS:userServiceDescription"
xmlns:r9="urn:3GPP:metadata:2009:MBMS:userServiceDescription"
xmlns:r12="urn:3GPP:metadata:2013:MBMS:userServiceDescription"
xmlns:r14="urn:3GPP:metadata:2017:MBMS:userServiceDescription"
xmlns:r15="urn:3GPP:metadata:2018:r15:MBMS:userServiceDescription"
xsi:schemaLocation="urn:3GPP:metadata:2005:MBMS:userServiceDescription USD-schema-main.xsd">
<sv:schemaVersion>1</sv:schemaVersion>
<userServiceDescription serviceId="urn:rohde-schwarz:service:16.0"
r7:serviceClass="urn:oma:bcast:ext_bsc_3gpp:bscc:rsservice1"
r14:romService="true">
<name>Test Service TMGI-0x1009f165</name>
<name lang="EN">EN: Test Service TMGI-0x1009f165</name>
<name lang="DE">DE: Test Service TMGI-0x1009f165</name>
<serviceLanguage>EN</serviceLanguage>
<serviceLanguage>DE</serviceLanguage>
<requiredCapabilities>
<feature>23</feature>
<feature>27</feature>
</requiredCapabilities>
<deliveryMethod sessionDescriptionURI="file:///TMGI-0x1009f165.sdp">
<sv:delimiter>0</sv:delimiter>
<r12:broadcastAppService>
<r12:basePattern>file:///TMGI-0x1009f165.mpd</r12:basePattern>
<r12:serviceArea>2</r12:serviceArea>
</r12:broadcastAppService>
<sv:delimiter>0</sv:delimiter>
</deliveryMethod>
<r12:appService appServiceDescriptionURI="http://10.160.82.131/out/u/bbb/q6a/manifest.mpd"
mimeType="application/dash+xml;profiles=urn:3GPP:PSS:profile:DASH10"/>
<r9:mediaPresentationDescription>
<mpdURI>file:///TMGI-0x1009f165.mpd</mpdURI>
</r9:mediaPresentationDescription>
<r9:schedule>
<r9:scheduleDescriptionURI>file:///TMGI-0x1009f165schedule.xml</r9:scheduleDescriptionURI>
</r9:schedule>
<sv:delimiter>0</sv:delimiter>
<r9:availabilityInfo>
<r9:infoBinding>
<r9:serviceArea>2</r9:serviceArea>
</r9:infoBinding>
</r9:availabilityInfo>
</userServiceDescription>
</bundleDescription>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
Content-Type: application/mbms-schedule+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165schedule.xml
<?xml version="1.0" encoding="utf-8"?>
<scheduleDescription xmlns="urn:3gpp:metadata:2011:MBMS:scheduleDescription"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sv="urn:3gpp:metadata:2009:MBMS:schemaVersion"
xsi:schemaLocation="urn:3gpp:metadata:2011:MBMS:scheduleDescription ScheduleDescription.xsd"
scheduleUpdate="2021-09-02T08:29:39Z">
<sv:schemaVersion>1</sv:schemaVersion>
<serviceSchedule>
<sessionSchedule>
<start>2021-09-02T08:29:39Z</start>
<stop>2051-08-26T08:29:39Z</stop>
<index>0</index>
<sv:delimiter>0</sv:delimiter>
<sv:delimiter>0</sv:delimiter>
</sessionSchedule>
</serviceSchedule>
</scheduleDescription>
--xxx.yyy.zzz.--Rohde&Schwarz-BSCC--zzz.yyy.xxx--
The original seamless switching implementation was based on a SA format that seems to contradict the specification TS26.346 in some aspects. In the 5G-MAG call we agreed on a modified format as illustrated in the example below.
Add support for the new SA format and allow users to define the target format as part of the configuration file.
MIME-Version: 1.0
Content-Type: multipart/related; boundary="++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--"; type="application/mbms-envelope+xml"
Content-Description: LTE MBMS Service Announcement
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Content-Type: application/mbms-envelope+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///envelope.xml
<?xml version="1.0" encoding="utf-8"?>
<metadataEnvelope xmlns="urn:3gpp:metadata:2005:MBMS:envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:3gpp:metadata:2005:MBMS:envelope MetadataEnvelope.xsd">
<item contentType="application/sdp"
metadataURI="file:///TMGI-0x1009f165.sdp"
validFrom="2021-10-12T10:59:43Z"
validUntil="2051-10-05T10:59:43Z"
version="1"/>
<item contentType="application/vnd.apple.mpegurl"
metadataURI="file:///TMGI-0x1009f165.m3u8"
validFrom="2021-10-12T10:59:43Z"
validUntil="2051-10-05T10:59:43Z"
version="1"/>
<item contentType="application/vnd.apple.mpegurl"
metadataURI="http://localhost:3333/watchfolder/hls/manifest.m3u8"
validFrom="2021-10-12T10:59:43Z"
validUntil="2051-10-05T10:59:43Z"
version="1"/>
<item contentType="application/mbms-user-service-description+xml"
metadataURI="file:///usdBundle.xml"
validFrom="2021-10-12T10:59:43Z"
validUntil="2051-10-05T10:59:43Z"
version="1"/>
<item contentType="application/mbms-schedule+xml"
metadataURI="file:///TMGI-0x1009f165schedule.xml"
validFrom="2021-10-12T10:59:43Z"
validUntil="2051-10-05T10:59:43Z"
version="1"/>
</metadataEnvelope>
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Content-Type: application/sdp
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165.sdp
v=0
o=ROHDE-SCHWARZ-BSCC 269087077 1634036383 IN IP4 11.11.11.11
s=HLS Streaming Session 0x1009f165
i=File Download Session
t=3843025183 4789105183
a=mbms-mode:broadcast-mbsfn 269087077
c=IN IP4 238.1.1.111/127
b=AS:2000
m=application 40101 FLUTE/UDP 0
a=flute-tsi:0
a=flute-ch:1
a=3GPP-QoE-Metrics:metrics={Object_Loss};rate=null;resolution=10
a=3GPP-QoE-Metrics:metrics={Network_Resource};rate=null;resolution=10
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Content-Type: application/vnd.apple.mpegurl
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165.m3u8
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=2305600,RESOLUTION=1280x720,FRAME-RATE=25.000,CODECS="avc1.64001f,mp4a.40.2"
stream_0.m3u8
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Content-Type: application/vnd.apple.mpegurl
Content-Transfer-Encoding: 7bit
Content-Location: http://localhost:3333/watchfolder/hls/manifest.m3u8
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=2305600,RESOLUTION=1280x720,FRAME-RATE=25.000,CODECS="avc1.64001f,mp4a.40.2"
stream_0.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1205600,RESOLUTION=960x540,FRAME-RATE=25.000,CODECS="avc1.64001f,mp4a.40.2"
stream_1.m3u8
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Content-Type: application/mbms-user-service-description+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///usdBundle.xml
<?xml version="1.0" encoding="utf-8"?>
<bundleDescription xmlns="urn:3GPP:metadata:2005:MBMS:userServiceDescription"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sv="urn:3gpp:metadata:2009:MBMS:schemaVersion"
xmlns:r7="urn:3GPP:metadata:2007:MBMS:userServiceDescription"
xmlns:r8="urn:3GPP:metadata:2008:MBMS:userServiceDescription"
xmlns:r9="urn:3GPP:metadata:2009:MBMS:userServiceDescription"
xmlns:r12="urn:3GPP:metadata:2013:MBMS:userServiceDescription"
xmlns:r14="urn:3GPP:metadata:2017:MBMS:userServiceDescription"
xmlns:r15="urn:3GPP:metadata:2018:r15:MBMS:userServiceDescription"
xsi:schemaLocation="urn:3GPP:metadata:2005:MBMS:userServiceDescription USD-schema-main.xsd">
<sv:schemaVersion>1</sv:schemaVersion>
<userServiceDescription serviceId="urn:3gpp:rsservice1"
r7:serviceClass="urn:oma:bcast:ext_bsc_3gpp:bscc:rsservice1"
r14:romService="true">
<name lang="EN-GB">BSCC Service1</name>
<name lang="DE-DE">BSCC Dienst1</name>
<serviceLanguage>EN-GB</serviceLanguage>
<serviceLanguage>DE-DE</serviceLanguage>
<requiredCapabilities>
<feature>23</feature>
<feature>27</feature>
</requiredCapabilities>
<deliveryMethod sessionDescriptionURI="file:///TMGI-0x1009f165.sdp">
<sv:delimiter>0</sv:delimiter>
<r12:broadcastAppService>
<r12:basePattern>stream_0.m3u8</r12:basePattern>
<r12:serviceArea>2</r12:serviceArea>
</r12:broadcastAppService>
<r12:unicastAppService>
<r12:basePattern>http://localhost:3333/watchfolder/hls/stream_0.m3u8</r12:basePattern>
<r12:basePattern>http://localhost:3333/watchfolder/hls/stream_1.m3u8</r12:basePattern>
</r12:unicastAppService>
<sv:delimiter>0</sv:delimiter>
</deliveryMethod>
<r12:appService appServiceDescriptionURI="http://localhost:3333/watchfolder/hls/manifest.m3u8"
mimeType="application/vnd.apple.mpegurl">
<r12:alternativeContent>
<r12:basePattern>stream_0.m3u8</r12:basePattern>
<r12:basePattern>http://localhost:3333/watchfolder/hls/stream_1.m3u8</r12:basePattern>
</r12:alternativeContent>
<r12:identicalContent>
<r12:basePattern>stream_0.m3u8</r12:basePattern>
<r12:basePattern>http://localhost:3333/watchfolder/hls/stream_0.m3u8</r12:basePattern>
</r12:identicalContent>
</r12:appService>
<r9:schedule>
<r9:scheduleDescriptionURI>file:///TMGI-0x1009f165schedule.xml</r9:scheduleDescriptionURI>
</r9:schedule>
<sv:delimiter>0</sv:delimiter>
<r9:availabilityInfo>
<r9:infoBinding>
<r9:serviceArea>2</r9:serviceArea>
</r9:infoBinding>
</r9:availabilityInfo>
</userServiceDescription>
</bundleDescription>
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Content-Type: application/mbms-schedule+xml
Content-Transfer-Encoding: 7bit
Content-Location: file:///TMGI-0x1009f165schedule.xml
<?xml version="1.0" encoding="utf-8"?>
<scheduleDescription xmlns="urn:3gpp:metadata:2011:MBMS:scheduleDescription"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sv="urn:3gpp:metadata:2009:MBMS:schemaVersion"
xsi:schemaLocation="urn:3gpp:metadata:2011:MBMS:scheduleDescription ScheduleDescription.xsd"
scheduleUpdate="2021-10-12T10:59:43Z">
<sv:schemaVersion>1</sv:schemaVersion>
<serviceSchedule>
<sessionSchedule>
<start>2021-10-12T10:59:43Z</start>
<stop>2051-10-05T10:59:43Z</stop>
<index>0</index>
<sv:delimiter>0</sv:delimiter>
<sv:delimiter>0</sv:delimiter>
</sessionSchedule>
</serviceSchedule>
</scheduleDescription>
--++++++++++++++++++++++++Rohde&Schwarz-BSCC++++++++++++++++++++++++--
Describe the bug
I had a few build issues, mostly to do with missing header files.
missing filesystem. I had to change
#include <filesystem>
to
#include <experimental/filesystem>
missing async.h and spdlog.h. These files don't seem to be in the include directory. I had to copy these from the rt-mbms-modem include directory. Does this mean I have not installed the repository correctly?
I also had to add -lboost_system to the link rules in buid.ninja to get the executables to link
I am running Ubuntu 18.04.6 LTS
Investigate what needs to be done to support migration to Android. What exactly needs to be implemented and changed to support Android devices.
This should also include an investigation how native Android implementations provide the 5G broadcast signal to the middleware.
Hi!
I have an issue with 5G-MAG ref. tool.
We have a 5G BC signal from the transmitter site, R&S transmitter and core, UHF channel 42, BW 8MHz, subcarrier spacing 1.25kHz, circular polarization AS, clean LOS. The signal strength is 73dBuV on log-perodic antenna.
In the test we use RF Blade SDR and PC with i5-10500 [email protected]
We tried various combinations of module versions and the following combination proved to be the most stable:
Ubuntu 20.04
Modem 1.2.2
mw 0.9.1
Application 0.9.0
The problem consists in the following:
When restarting the modem, we first need to hide the antenna so that the CINR drops to about 1-2dB for the modem to synchronize and lock on the signal. We return the antenna to a stronger signal, the modem works stably for a few minutes and then breaks.
mw window doesn't look as it is described https://github.com/5G-MAG/Documentation-and-Architecture/wiki/Use-Case:-HLS-playback-over-5G-Broadcast and has no play button, so we can't get a video on the application. In mw version 0.9.0 the play button appeared sometimes, not every time.
ffplay is working fine, but since the modem is unstable, the video soon breaks.
Do you have any suggestions on what we could try to make the modem work stably and what to do with mw?
Describe the bug
ninja build process of rt-mbms-mw fails with No package 'gmime-3.0' found
To Reproduce
cmake -DCMAKE_INSTALL_PREFIX=/usr -GNinja ..
Expected behavior
Screenshots
Desktop (please complete the following information):
Ubuntu 20.04
Additional context
Add any other context about the problem here.
In order to perform development work in the Gateway process without having to use the receiver it would be good to have multicast example streams available. The streams should be looped in order to enable longterm playback.
The ROUTE/DASH broadcasting method is designed to deliver DASH-formatted streaming content over ROUTE in the form of objects to a large number of broadcast receivers.
to be discussed
The Middleware supports multiple SA formats than can be enabled via the configuration file. More details can be found here: https://github.com/5G-MAG/Documentation-and-Architecture/wiki/MBMS-Service-Announcement-Files
The sample recordings that ORS is hosting all use the legacy format. It would be good to record some streams based on the latest changes to the SA format.
IIs your feature request related to a problem? Please describe.
Broadcast on Demand
Describe the solution you'd like
implement a feedback loop to a control system to get information about how many users watching what from 5G BC and/or OTT. Based on actual usage and threshold value (users per service per region) the control system should dynamically (de-)provision services on the 5G BC core the xMB interface.
ToDo's:
Which parts of the reference client are affected
Who takes care about the development
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.