Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates scripts to process HEVC content #71

Draft
wants to merge 18 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
*_Log_*.txt
output/
output*/
database*.json
content_files/
gen_*
!**/*.csv
*venv/
.vscode
**/*.numbers
**/*.DS_Store
.ignore/
**/*.log
validation/
vectors/
__pycache__/
15 changes: 15 additions & 0 deletions chunked/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

## commands used to generate chunked content
```
./chunked/gen.sh "cfhd" "12.5_25_50" "t16" "2023-09-01"
./chunked/gen.sh "chh1" "12.5_25_50" "t2" "2025-01-15"
./chunked/gen.sh "cud1" "12.5_25_50" "t22" "2025-01-15"
./chunked/gen.sh "clg1" "12.5_25_50" "t42" "2025-01-15"
./chunked/gen.sh "chd1" "12.5_25_50" "t62" "2025-01-15"
```


## generating chunked content

1. create the MPD corresponding to the target test vector configuration and name it according to the media profile.
2. run the `gen.sh` script with the corresponding arguments
38 changes: 24 additions & 14 deletions chunked/gen.sh
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
#!/usr/bin/bash
#!/bin/zsh
set -eux

export INPUT_BATCH="2023-09-01"
export OUTPUT_BATCH="2023-09-01"

export SET_NAME=$1
export INPUT_STREAM_ID=$2
export FRAMERATES=$2 # eg. "12.5_25_50"
export INPUT_STREAM_ID=$3
export INPUT_BATCH=$4 # eg. "2023-09-01"
export OUTPUT_BATCH=$4 # eg. "2023-09-01"

export MPD=stream.mpd
export INPUT_DIR=output/$SET_NAME_sets/12.5_25_50/$INPUT_STREAM_ID/$INPUT_BATCH/
export OUTPUT_STREAM_ID=chunked
export OUTPUT=chunked
export OUTPUT_DIR=output/$SET_NAME_sets/12.5_25_50/$OUTPUT_STREAM_ID/$OUTPUT_BATCH/
export VECTORS_DIR="output"
export OUTPUT_STREAM_ID="chunked"
export MPD="stream_$SET_NAME.mpd"

export INPUT_REL_DIR="$SET_NAME"_sets/$FRAMERATES/$INPUT_STREAM_ID/$INPUT_BATCH
export INPUT_DIR=$VECTORS_DIR/$INPUT_REL_DIR
export OUTPUT_REL_DIR="$SET_NAME"_sets/$FRAMERATES/$OUTPUT_STREAM_ID/$OUTPUT_BATCH
export OUTPUT_DIR=$VECTORS_DIR"_chunked"/$OUTPUT_REL_DIR

readonly SCRIPT_DIR=$(dirname $(readlink -f $0))

# clean copy of input
if [[ -d "$OUTPUT_DIR" ]]; then
echo "$OUTPUT_DIR exists"
rm -Rf $OUTPUT_DIR
fi
mkdir -p $OUTPUT_DIR
rm -rf $OUTPUT_DIR/*
cp -r $INPUT_DIR/* $OUTPUT_DIR/

#######################################################
Expand All @@ -35,13 +42,16 @@ done
rm styp

## modify MPD
cp $SCRIPT_DIR/stream.mpd ../stream.mpd
cp $SCRIPT_DIR/$MPD ../stream.mpd

popd
#######################################################

# zip
pushd output
rm $SET_NAME_sets/12.5_25_50/$OUTPUT_STREAM_ID/$OUTPUT_BATCH/$INPUT_STREAM_ID.zip
zip -r $SET_NAME_sets/12.5_25_50/$OUTPUT_STREAM_ID/$OUTPUT_BATCH/$OUTPUT_STREAM_ID.zip $SET_NAME_sets/12.5_25_50/$OUTPUT_STREAM_ID/$OUTPUT_BATCH/*
pushd $VECTORS_DIR
export ARCHIVE=$OUTPUT_REL_DIR/$OUTPUT_STREAM_ID.zip
if [[ -f "$ARCHIVE" ]]; then
rm -f $ARCHIVE
fi
zip -r $ARCHIVE $OUTPUT_REL_DIR/*
popd
4 changes: 2 additions & 2 deletions chunked/isobmff_chunker.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def isobmff_read_topboxes(f):
global fo
fo = None
for b in boxes:
bytes = fi.read(b[0]);
bytes = fi.read(b[0])
if b[1] == b'styp':
continue

Expand All @@ -86,7 +86,7 @@ def isobmff_read_topboxes(f):
fo = open(input_file + "_" + str(i_chunk+1) + ".m4s", 'wb')
styp = open("styp", 'rb')
fo.write(styp.read(28))
styp.close();
styp.close()

fo.write(bytes)

Expand Down
File renamed without changes.
23 changes: 23 additions & 0 deletions chunked/stream_chd1.mpd
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" ?>
<!-- MPD file Generated with GPAC version 2.5-DEV-rev1002-gc13026f84-master at 2025-01-16T02:48:36.836Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT2.000S" type="static" mediaPresentationDuration="PT0H0M30.000S" maxSegmentDuration="PT0H0M2.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:mpeg:dash:profile:cmaf:2019,urn:cta:wave:test-content-media-profile:2022">
<ProgramInformation>
<Title>Sol_hdr10, 3840x2160, 50fps, chd1, Test Vector 62</Title>
<Source>sol_hdr10_O1_3840x2160@50_30 version 5 (2024-11-27)</Source>
<Copyright>© Sol Levante (2020), credited to Netflix, used and licensed under Creative Commons Attribution 4.0 International (CC BY 4.0) (https://creativecommons.org/licenses/by/4.0/) by the Consumer Technology Association (CTA)® / annotated, encoded and compressed from original.</Copyright>
</ProgramInformation>
<Period duration="PT0H0M30.000S">
<AdaptationSet segmentAlignment="true" maxWidth="3840" maxHeight="2160" maxFrameRate="50" par="16:9" mimeType="video/mp4" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" contentType="video" containerProfiles="cmfc chd1">
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="16"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<SegmentTemplate media="1/$Time$_$SubNumber$.m4s" initialization="1/init.mp4" timescale="12800">
<SegmentTimeline>
<S t="0" d="25600" k="5" r="14"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="1" codecs="hev1.2.4.H153.90" width="3840" height="2160" frameRate="50" sar="1:1" bandwidth="17500000">
</Representation>
</AdaptationSet>
</Period>
</MPD>
19 changes: 19 additions & 0 deletions chunked/stream_chh1.mpd
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" ?>
<!-- MPD file Generated with GPAC version 2.5-DEV-rev1002-gc13026f84-master at 2025-01-15T23:40:42.614Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT2.000S" type="static" mediaPresentationDuration="PT0H0M30.000S" maxSegmentDuration="PT0H0M2.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:mpeg:dash:profile:cmaf:2019,urn:cta:wave:test-content-media-profile:2022">
<ProgramInformation>
<Title>Croatia, 1920x1080, 50fps, chh1, Test Vector 2</Title>
<Source>croatia_L1_1920x1080@50_30 version 4 (2023-02-13)</Source>
<Copyright>© Croatia (2019), credited to EBU, used and licensed under Creative Commons Attribution 4.0 International (CC BY 4.0) (https://creativecommons.org/licenses/by/4.0/) by the Consumer Technology Association (CTA)® / annotated, encoded and compressed from original.</Copyright>
</ProgramInformation>
<Period duration="PT0H0M30.000S">
<AdaptationSet segmentAlignment="true" maxWidth="1920" maxHeight="1080" maxFrameRate="50" par="16:9" mimeType="video/mp4" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" contentType="video" containerProfiles="cmfc chh1">
<SegmentTemplate media="1/$Time$_$SubNumber$.m4s" initialization="1/init.mp4" timescale="12800">
<SegmentTimeline>
<S t="0" d="25600" k="5" r="14"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="1" codecs="hev1.2.4.H123.90" width="1920" height="1080" frameRate="50" sar="1:1" bandwidth="8000000"/>
</AdaptationSet>
</Period>
</MPD>
24 changes: 24 additions & 0 deletions chunked/stream_clg1.mpd
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" ?>
<!-- MPD file Generated with GPAC version 2.5-DEV-rev1002-gc13026f84-master at 2025-01-16T05:01:27.784Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT2.000S" type="static" mediaPresentationDuration="PT0H0M30.000S" maxSegmentDuration="PT0H0M2.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:mpeg:dash:profile:cmaf:2019,urn:cta:wave:test-content-media-profile:2022">
<ProgramInformation>
<Title>Croatia_hlg10, 3840x2160, 50fps, clg1, Test Vector 42</Title>
<Source>croatia_hlg10_O1_3840x2160@50_30 version 5 (2024-11-28)</Source>
<Copyright>© Croatia (2019), credited to EBU, used and licensed under Creative Commons Attribution 4.0 International (CC BY 4.0) (https://creativecommons.org/licenses/by/4.0/) by the Consumer Technology Association (CTA)® / annotated, encoded and compressed from original.</Copyright>
</ProgramInformation>
<Period duration="PT0H0M30.000S">
<AdaptationSet segmentAlignment="true" maxWidth="3840" maxHeight="2160" maxFrameRate="50" par="16:9" mimeType="video/mp4" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" contentType="video" containerProfiles="cmfc clg1">
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="14"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<SupplementalProperty schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="18"/>
<SegmentTemplate media="1/$Time$_$SubNumber$.m4s" initialization="1/init.mp4" timescale="12800">
<SegmentTimeline>
<S t="0" d="25600" k="5" r="14"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="1" codecs="hev1.2.4.H153.90" width="3840" height="2160" frameRate="50" sar="1:1" bandwidth="17000000">
</Representation>
</AdaptationSet>
</Period>
</MPD>
22 changes: 22 additions & 0 deletions chunked/stream_cud1.mpd
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" ?>
<!-- MPD file Generated with GPAC version 2.5-DEV-rev1002-gc13026f84-master at 2025-01-16T00:43:03.610Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT2.000S" type="static" mediaPresentationDuration="PT0H0M30.000S" maxSegmentDuration="PT0H0M2.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:mpeg:dash:profile:cmaf:2019,urn:cta:wave:test-content-media-profile:2022">
<ProgramInformation>
<Title>Sol_sdr_bt2020, 3840x2160, 50fps, cud1, Test Vector 22</Title>
<Source>sol_sdr_bt2020_O1_3840x2160@50_30 version 5 (2024-11-26)</Source>
<Copyright>© Sol Levante (2020), credited to Netflix, used and licensed under Creative Commons Attribution 4.0 International (CC BY 4.0) (https://creativecommons.org/licenses/by/4.0/) by the Consumer Technology Association (CTA)® / annotated, encoded and compressed from original.</Copyright>
</ProgramInformation>
<Period duration="PT0H0M30.000S">
<AdaptationSet segmentAlignment="true" maxWidth="3840" maxHeight="2160" maxFrameRate="50" par="16:9" mimeType="video/mp4" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" contentType="video" containerProfiles="cmfc cud1">
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="14"/>
<EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<SegmentTemplate media="1/$Time$_$SubNumber$.m4s" initialization="1/init.mp4" timescale="12800">
<SegmentTimeline>
<S t="0" d="25600" k="5" r="14"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="1" codecs="hev1.2.4.H153.90" width="3840" height="2160" frameRate="50" sar="1:1" bandwidth="17500000"/>
</AdaptationSet>
</Period>
</MPD>
71 changes: 71 additions & 0 deletions database_upload.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import json
import pysftp
import os
from pathlib import Path

LOCAL_OUTPUT_FOLDER = Path("./output")
# depending on the AKAMAI_PRIVATE_KEY permissions, this may be relative to the /vectors dir ...
SERVER_OUTPUT_FOLDER = "/"
# or relative to the server root
# SERVER_OUTPUT_FOLDER = "/129021/dash/WAVE/vectors/"


def create_directory_structure(sftp, key, dry_run):

directory = SERVER_OUTPUT_FOLDER
for part in key.split('/'):
if part == '':
continue
directory += f'{part}/'
if not sftp.isfile(directory):
print(f'sftp.mkdir: {directory}')
if not dry_run:
sftp.mkdir(directory, mode=644)

for root, dirs, _ in os.walk(LOCAL_OUTPUT_FOLDER / key, topdown=True):
for name in dirs:
batch_subdir = f'{SERVER_OUTPUT_FOLDER}{Path(root).relative_to(LOCAL_OUTPUT_FOLDER)}/{name}'
if not sftp.isfile(batch_subdir):
print(f'sftp.mkdir: {batch_subdir}')
if not dry_run:
sftp.mkdir(batch_subdir, mode=644)


def upload_db_entry(sftp, key, entry, dry_run):

create_directory_structure(sftp, key, dry_run)

for p in (LOCAL_OUTPUT_FOLDER / key).glob("**/*"):
rel_path = p.relative_to(LOCAL_OUTPUT_FOLDER)
dst_path = SERVER_OUTPUT_FOLDER + str(rel_path)
if p.is_file():
print("sftp.put: " + str(p) + " >>> " + dst_path)
if not dry_run:
sftp.put(p, dst_path, callback=lambda x,y: print("{} transferred out of {}".format(x,y)))


def upload_db(sftp, db, dry_run):
for records in db.values():
for key, entry in records.items():
upload_db_entry(sftp, key, entry, dry_run)


if __name__ == "__main__":

db = {}
dry_run = False

with open('./database.json', 'r') as fo:
db = json.load(fo)

host = "dashstorage.upload.akamai.com"
username = "sshacs"
cnopts = pysftp.CnOpts(knownhosts=host)
cnopts.hostkeys = None

with pysftp.Connection(host=host, username=username, private_key=os.path.expanduser(os.environ['AKAMAI_PRIVATE_KEY']), cnopts=cnopts) as sftp:
print("Connection successfully established ... ")
# dirs = sftp.listdir()
# print(dirs)
sftp.cwd(SERVER_OUTPUT_FOLDER)
upload_db(sftp, db, dry_run)
59 changes: 29 additions & 30 deletions profiles/avc.csv
Original file line number Diff line number Diff line change
@@ -1,30 +1,29 @@
Stream ID,mezzanine radius,pic timing,VUI timing,sample entry,CMAF frag dur,init constraints,frag_type,resolution,framerate,bitrate,duration,wave_profile,cmaf_profile
1,L1_1920x1080,TRUE,FALSE,avc1,2,regular,duration,1920x1080,0.5,5100,30,cmf2,cfhd
2,L1_1920x1080,FALSE,TRUE,avc3,5,single,pframes,1920x1080,0.5,5000,30,cmf2,cfhd
3,L1_1920x1080,TRUE,FALSE,avc1+3,2,regular,every_frame,1920x1080,0.5,4900,30,cmf2,cfhd
10,L1_1920x1080,FALSE,FALSE,avc1,2,regular,duration,1920x1080,0.5,4800,30,cmf2,cfhd
11,L1_1920x1080,TRUE,TRUE,avc1,2,regular,duration,1920x1080,0.5,4100,30,cmf2,cfhd
12,L1_1920x1080,TRUE,FALSE,avc3,2,regular,duration,1920x1080,0.5,4200,30,cmf2,cfhd
13,L1_1920x1080,TRUE,FALSE,avc1+3,2,regular,duration,1920x1080,0.5,4300,30,cmf2,cfhd
14,L1_1920x1080,TRUE,FALSE,avc1,5,regular,duration,1920x1080,0.5,4400,30,cmf2,cfhd
15,L1_1920x1080,TRUE,FALSE,avc1,2,single,duration,1920x1080,0.5,4500,30,cmf2,cfhd
16,L1_1920x1080,TRUE,FALSE,avc1,2,regular,pframes,1920x1080,0.5,4600,30,cmf2,cfhd
17,L1_1920x1080,TRUE,FALSE,avc1,2,regular,every_frame,1920x1080,0.5,4700,30,cmf2,cfhd
19,L1_1920x1080,TRUE,FALSE,avc1,2,regular,duration,1920x1080,0.5,5100,60,cmf2,cfhd
20,L2_1920x1080,TRUE,FALSE,avc1,2,regular,duration,1920x1080,1,6000,60,cmf2,chdf
21,K1_1600x900,TRUE,FALSE,avc1,2,regular,duration,1600x900,0.5,3000,60,cmf2,cfhd
22,J1_1280x720,TRUE,FALSE,avc1,2,regular,duration,1280x720,0.5,2000,60,cmf2,cfhd
23,J1_1280x720,TRUE,FALSE,avc1,2,regular,duration,1280x720,1,3000,60,cmf2,cfhd
24,I1_1024x576,TRUE,FALSE,avc1,2,regular,duration,1024x576,0.5,1200,60,cmf2,cfhd
25,I2_1024x576,TRUE,FALSE,avc1,2,regular,duration,1024x576,0.5,1500,60,cmf2,cfhd
26,H1_960x540,TRUE,FALSE,avc1,2,regular,duration,960x540,0.5,1100,60,cmf2,cfhd
27,G1_852x480,TRUE,FALSE,avc1,2,regular,duration,852x480,0.5,1000,60,cmf2,cfhd
28,F1_768x432,TRUE,FALSE,avc1,2,regular,duration,768x432,0.5,900,60,cmf2,cfhd
29,E1_720x404,TRUE,FALSE,avc1,2,regular,duration,720x404,0.5,800,60,cmf2,cfhd
30,D1_704x396,TRUE,FALSE,avc1,2,regular,duration,704x396,0.5,700,60,cmf2,cfhd
31,C1_640x360,TRUE,FALSE,avc1,2,regular,duration,640x360,0.5,600,60,cmf2,cfhd
32,B1_512x288,TRUE,FALSE,avc1,2,regular,duration,512x288,0.5,450,60,cmf2,cfhd
33,A1_480x270,TRUE,FALSE,avc1,2,regular,duration,480x270,0.5,400,60,cmf2,cfhd
34,A1_480x270,TRUE,FALSE,avc1,2,regular,duration,480x270,0.25,300,60,cmf2,cfhd
audio,A1_480x270,FALSE,FALSE,avc1,2,regular,duration,480x270,0.25,128,60,cmf2,caac
LD,LD1_1920x1080,TRUE,FALSE,avc1,2,regular,duration,1920x1080,0.5,5100,7200,cmf2,cfhd
Stream ID;mezzanine radius;pic timing;VUI timing;sample entry;CMAF frag dur;init constraints;frag_type;resolution;framerate;bitrate;duration;cmaf_profile;wave_profile
1;L1_1920x1080;TRUE;FALSE;avc1;2;regular;duration;1920x1080;0.5;5100;30;cmf2;cfhd
2;L1_1920x1080;FALSE;TRUE;avc3;5;single;pframes;1920x1080;0.5;5000;30;cmf2;cfhd
3;L1_1920x1080;TRUE;FALSE;avc1+3;2;regular;every_frame;1920x1080;0.5;4900;30;cmf2;cfhd
10;L1_1920x1080;FALSE;FALSE;avc1;2;regular;duration;1920x1080;0.5;4800;30;cmf2;cfhd
11;L1_1920x1080;TRUE;TRUE;avc1;2;regular;duration;1920x1080;0.5;4100;30;cmf2;cfhd
12;L1_1920x1080;TRUE;FALSE;avc3;2;regular;duration;1920x1080;0.5;4200;30;cmf2;cfhd
13;L1_1920x1080;TRUE;FALSE;avc1+3;2;regular;duration;1920x1080;0.5;4300;30;cmf2;cfhd
14;L1_1920x1080;TRUE;FALSE;avc1;5;regular;duration;1920x1080;0.5;4400;30;cmf2;cfhd
15;L1_1920x1080;TRUE;FALSE;avc1;2;single;duration;1920x1080;0.5;4500;30;cmf2;cfhd
16;L1_1920x1080;TRUE;FALSE;avc1;2;regular;pframes;1920x1080;0.5;4600;30;cmf2;cfhd
17;L1_1920x1080;TRUE;FALSE;avc1;2;regular;every_frame;1920x1080;0.5;4700;30;cmf2;cfhd
19;L1_1920x1080;TRUE;FALSE;avc1;2;regular;duration;1920x1080;0.5;5100;60;cmf2;cfhd
20;L2_1920x1080;TRUE;FALSE;avc1;2;regular;duration;1920x1080;1;6000;60;cmf2;chdf
21;K1_1600x900;TRUE;FALSE;avc1;2;regular;duration;1600x900;0.5;3000;60;cmf2;cfhd
22;J1_1280x720;TRUE;FALSE;avc1;2;regular;duration;1280x720;0.5;2000;60;cmf2;cfhd
23;J1_1280x720;TRUE;FALSE;avc1;2;regular;duration;1280x720;1;3000;60;cmf2;cfhd
24;I1_1024x576;TRUE;FALSE;avc1;2;regular;duration;1024x576;0.5;1200;60;cmf2;cfhd
25;I2_1024x576;TRUE;FALSE;avc1;2;regular;duration;1024x576;0.5;1500;60;cmf2;cfhd
26;H1_960x540;TRUE;FALSE;avc1;2;regular;duration;960x540;0.5;1100;60;cmf2;cfhd
27;G1_852x480;TRUE;FALSE;avc1;2;regular;duration;852x480;0.5;1000;60;cmf2;cfhd
28;F1_768x432;TRUE;FALSE;avc1;2;regular;duration;768x432;0.5;900;60;cmf2;cfhd
29;E1_720x404;TRUE;FALSE;avc1;2;regular;duration;720x404;0.5;800;60;cmf2;cfhd
30;D1_704x396;TRUE;FALSE;avc1;2;regular;duration;704x396;0.5;700;60;cmf2;cfhd
31;C1_640x360;TRUE;FALSE;avc1;2;regular;duration;640x360;0.5;600;60;cmf2;cfhd
32;B1_512x288;TRUE;FALSE;avc1;2;regular;duration;512x288;0.5;450;60;cmf2;cfhd
33;A1_480x270;TRUE;FALSE;avc1;2;regular;duration;480x270;0.5;400;60;cmf2;cfhd
34;A1_480x270;TRUE;FALSE;avc1;2;regular;duration;480x270;0.25;300;60;cmf2;cfhd
LD;LD1_1920x1080;TRUE;FALSE;avc1;2;regular;duration;1920x1080;0.5;5100;7200;cmf2;cfhd
2 changes: 2 additions & 0 deletions profiles/caac.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Stream ID;mezzanine radius;pic timing;VUI timing;sample entry;CMAF frag dur;init constraints;frag_type;resolution;framerate;bitrate;duration;wave_profile;cmaf_profile
audio;A1_480x270;FALSE;FALSE;avc1;2;regular;duration;480x270;0.25;128;60;cmf2;caac
12 changes: 12 additions & 0 deletions profiles/chd1.mezzanine_v5.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Stream ID,mezzanine radius,pic timing,VUI timing,sample entry,CMAF frag dur,init constraints,frag_type,resolution,framerate,bitrate,duration,cmaf_profile,wave_profile,cenc,sar,mezzanine_prefix_25HZ,mezzanine_prefix_30HZ
61,O1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,30.0,cmf2,chd1,False,1/1,sol_hdr10_,sol_hdr10_
61_enc,O1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,30.0,cmf2,chd1,True,1/1,sol_hdr10_,sol_hdr10_
62,O1_3840x2160,True,False,hev1,2.0,multiple,pframes,3840x2160,1,17500,30.0,cmfc,chd1,False,1/1,sol_hdr10_,sol_hdr10_
70,O1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,60.0,cmf2,chd1,False,1/1,sol_hdr10_,sol_hdr10_
71,O1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,0.5,15000,60.0,cmf2,chd1,False,1/1,sol_hdr10_,sol_hdr10_
72,M1_2560x1440,False,True,hvc1,2.0,multiple,duration,2560x1440,0.5,9000,60.0,cmf2,chd1,False,1/1,sol_hdr10_,sol_hdr10_
73,L1_1920x1080,False,True,hvc1,2.0,multiple,duration,1920x1080,0.5,5000,60.0,cmf2,chd1,False,1/1,sol_hdr10_,sol_hdr10_
4_splice_main,C1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,-1,cmf2,chd1,False,1/1,splice_main_sol_hdr10_,splice_main_sol_hdr10_
4_splice_ad,AD-C1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,-1,cmf2,chd1,False,1/1,splice_ad_sol_hdr10_,splice_ad_sol_hdr10_
4_splice_main_enc,C1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,-1,cmf2,chd1,True,1/1,splice_main_sol_hdr10_,splice_main_sol_hdr10_
4_splice_ad_enc,AD-C1_3840x2160,False,True,hvc1,2.0,multiple,duration,3840x2160,1,17500,-1,cmf2,chd1,True,1/1,splice_ad_sol_hdr10_,splice_ad_sol_hdr10_
Loading