Skip to content

Why are output groups not stoppable?

0

We are trying to use the API to start and stop certain output groups but it does not allow us to do this. How can this be achieved?

    "output_groups": [
        {
            "id": 67,
            "startable": false,
            "stoppable": false,
            "pausable": true,
            "unpausable": false
        },
        {
            "id": 68,
            "startable": false,
            "stoppable": false,
            "pausable": true,
            "unpausable": false
        }
    ],

asked a year ago241 views

9 Answers
0

Rollover is applicable for archive output group as this is the tool that allow to do recording.

What output types are you looking for? And what functionality do you need? What is your use case?

AWS

answered a year ago

  • We are looking to do Apple HLS and Reliable TS output groups. We need outputs with ABRs stored and ready to play after certain live events have occurred without stopping the Reliable TS outputs.

    If we are unable to dynamically change the files names for Apple HLS, we are forced to move the files out of the directory before we can unpause the Apple HLS output.

    We are trying this but are running into an issue with the API. We are able to start and stop the event, but we are unable to pause output groups.

    Works: curl --location 'https://x.x.x/live_events/33/stop'
    --header 'Accept: application/xml'
    --header 'Content-Type: application/xml'
    --header 'Cookie: XSRF-TOKEN=kH4URt7nLxh8UthF%2FlBfPFzkQBT66FOw9l08o7fVE7FfrXgsV4YtL4HVvWG4FmrbQ5urA9MN9laQ%2BHg3Ir7CEw%3D%3D; _session_id=2985d5835448945bb00c7627d37afe57'
    --data '<stop></stop>'

    Does not work. curl --location 'https://x.x.x/live_events/33/pause_output_group '
    --header 'Accept: application/xml'
    --header 'Content-Type: application/xml'
    --header 'Cookie: XSRF-TOKEN=E1YP%2BfCVGVTCRPJBjyShTs7WoP%2Beaq1WdNRmBFipXjzchWOTefQbYz%2FDl2XJYpSp0alL6LePCLAScSKQzcKPng%3D%3D; _session_id=2985d5835448945bb00c7627d37afe57'
    --data '<group_id>68</group_id>'

    We get

    <?xml version="1.0" encoding="UTF-8"?> <errors> <error>X-Auth-Key is invalid.</error> </errors>

    We also have the issue where we loose iframe playlists when we pause.

0

You can create two events: one for udp output and another for HLS output.

Configure HLS output in VOD mode, as well as $dt$ in folder name and then stop and start this event.

Enter image description here

AWS

answered a year ago

  • This is an option, but it would consume twice the resources for encoding, which means more power and resources consumed. Do you know why we would be getting this error when trying to pause output_groups?

    <?xml version="1.0" encoding="UTF-8"?> <errors> <error>X-Auth-Key is invalid.</error> </errors>

    We also have the issue where we loose iframe playlists when we pause.

    X-Auth is working with all other calls.

0
AWS

answered a year ago

  • Hi Roman,

    When we’re creating a single TS file, we’d like to record these as separate files and playlists. However, when we pause and unpause the recording, it deletes the old files and writes over them.

    When we try many of these commands we get 404 errors, even though we can get the status for these events:

    curl --location 'http://x.x.x/live_events/33/stop'
    --header 'Accept: application/xml'
    --header 'Content-type: application/xml'
    --data '<stop></stop>'

    If we are using path modifiers, we would want a new folder and new ts file for each time the content is paused. It only seems to create the path at start.

0

You might get 404 if you are using latest sotware version where https is enabled by default or you are using auth.

This is example of how to ignore ssl certificate when https is used and how to pass auth.

cd /opt/elemental_se/web/public/authentication_scripts

./auth_curl.rb --login elemental --api-key API_Key curl -X GET -H "Accept: application/xml" -H "Content-type: application/xml" -k --insecure https://IP_ADDRESS /live_events/EVENT_ID/status

Use $dt$ as name modifier and in destination url to keep files unique names and create unique folder names each time when you start event.

Enter image description here

You have another option that allow to create new file (for Archive) based on the following api call and you don't need to stop channel:

curl -H "Accept: application/xml" -H "Content-type: application/xml" -d "<output_id>OUTPUT_ID</output_id>" http://IP_ADDRESS/live_events/EVENT_ID/rollover_output”

AWS

answered a year ago

  • I was able to send the call now, thank you! Rollover seems only to work on Archive type only. Is there any other method to accomplish this?

    Pausing video also causes the I-frame only playlist to disappear.

0

I am not sure how pause will help.

But this is example of api call that is working for me:

./auth_curl.rb --login elemental --api-key API_KEY curl -H "Accept: application/xml" -H "Content-type: application/xml" -k --insecure -d "<group_id>GROUP_ID</group_id>" https://localhost/live_events/EVENT_ID/pause_output_group

AWS

answered a year ago

  • Thank you! I managed to make it work. We don’t have any other alternative for us to save Apple HLS on live events with multiple outputs. Adding more events to achieve this would be extremely inefficient. The only workaround is to pause the output group and move the files out of the directory before unpausing. However, we still need to understand why iframe-only playlists disappear when paused.

0

How do you configure i-frame only manifest.

As I see it still there when I pause HLS output group:

#EXTM3U

#EXT-X-VERSION:4

#EXT-X-INDEPENDENT-SEGMENTS

#EXT-X-STREAM-INF:BANDWIDTH=620952,AVERAGE-BANDWIDTH=620952,CODECS="avc1.4d4020,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=59.940 d_1.m3u8

#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=257676,AVERAGE-BANDWIDTH=257676,CODECS="avc1.4d4020",RESOLUTION=1280x720,URI="d_1_I-Frame.m3u8"

This is my config:

VOD Mode - is enabled

Add I-Frame Only Manifest - is enabled

AWS

answered a year ago

  • VOD Mode - is enabled Emit Single File - is enabled Add I-Frame Only Manifest - is enabled

0

What is your manifest looks like?

AWS

answered a year ago

  • #EXTM3U #EXT-X-VERSION:4 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-STREAM-INF:BANDWIDTH=5016000,AVERAGE-BANDWIDTH=3300000,CODECS="avc1.640029",RESOLUTION=1280x720,FRAME-RATE=30.000 index_720p.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1170400,AVERAGE-BANDWIDTH=770000,CODECS="avc1.640029",RESOLUTION=854x480,FRAME-RATE=30.000 index_480p.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=8571200,AVERAGE-BANDWIDTH=5711200,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=30.000 index_1080p.m3u8 [elemental@x1 ~]$

0

I suggest to open ticket in aws support for I-frame only issue. I-frame only manifest is there after pause only for single hls stream and disappears for ABR configuration.

AWS

answered a year ago

-2

Based on the information provided, I don't have specific details about why output groups are not stoppable in your particular AWS service context. The JSON snippet you've shared shows output groups with "stoppable: false" attributes, but without knowing which specific AWS service you're using, I can't provide a definitive answer.

In general, when AWS services send stop signals to resources, they typically use a SIGTERM signal first (allowing for graceful shutdown), followed by a SIGKILL if the resource doesn't terminate within the allocated time. For example, in ECS, when stopping a task, a SIGTERM signal is sent with a default 30-second timeout before SIGKILL is issued.

If you're trying to control resources like databases, you might consider using tags to identify which resources can be stopped. For Amazon Aurora DB clusters, for instance, you can tag clusters as "stoppable" and then use scripts to stop those specific clusters.

Without knowing the specific AWS service you're working with, I recommend:

  1. Checking the service-specific documentation for output group management
  2. Looking for alternative control mechanisms like pause/unpause (which appear to be available based on your JSON)
  3. Contacting AWS Support for guidance specific to your service
  4. Exploring if there are service-specific APIs or commands that might allow you to achieve your goal through a different approach
    Sources
    StopTask - Amazon Elastic Container Service

answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.