Opencast CERN-CDS Encoding profiles === cds-encoding.properties ``` #### # Profile definitions for the encoding service. # # In order to understand how to configure a format, take a look a the # documentation below: # # profile..name: # Name of the format, used in download dialogs of the frontend. # # profile..output: # Type of the distribution format. # [audio|visual|audiovisual|stream|enhancedaudio|image|imagesequence|cover|nothing] # # profile..suffix: # Extension that will be appended to the download. # # profile..mimetype: # Mime type used to provide proper content types. # # profile..input: # Track types for which this format is applicable. # [audio|visual|audiovisual|stream|enhancedaudio|image|imagesequence|cover|nothing] ## profile.cds-2160p.http.name = encoding highest quality with 2160p for cds streaming profile.cds-2160p.http.input = visual profile.cds-2160p.http.output = visual profile.cds-2160p.http.suffix = -preview.mp4 profile.cds-2160p.http.jobload = 2 profile.cds-2160p.http.ffmpeg.command = -i #{in.video.path} \ -c:v libx264 -crf 23 -maxrate 10000k -bufsize 10000k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -filter:v scale=3840:-2:force_original_aspect_ratio=decrease:force_divisible_by=2,fps=25 \ -c:a aac -b:a 96k -ac 1 \ -f mp4 #{out.dir}/#{out.name}#{out.suffix} profile.cds-1080p.http.name = encoding high quality with 1080p for cds streaming profile.cds-1080p.http.input = visual profile.cds-1080p.http.output = visual profile.cds-1080p.http.suffix = -preview.mp4 profile.cds-1080p.http.jobload = 2 profile.cds-1080p.http.ffmpeg.command = -i #{in.video.path} \ -c:v libx264 -crf 23 -maxrate 4000k -bufsize 8000k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -filter:v scale=1920:-2:force_original_aspect_ratio=decrease:force_divisible_by=2,fps=25 \ -c:a aac -b:a 96k -ac 1 \ -f mp4 #{out.dir}/#{out.name}#{out.suffix} profile.cds-720p.http.name = encoding with 720p for cds streaming profile.cds-720p.http.input = visual profile.cds-720p.http.output = visual profile.cds-720p.http.suffix = -preview.mp4 profile.cds-720p.http.jobload = 2 profile.cds-720p.http.ffmpeg.command = -i #{in.video.path} \ -c:v libx264 -crf 23 -maxrate 1200k -bufsize 2400k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -filter:v scale=1280:-2:force_original_aspect_ratio=decrease:force_divisible_by=2,fps=25 \ -c:a aac -b:a 64k -ac 1 \ -f mp4 #{out.dir}/#{out.name}#{out.suffix} profile.cds-480p.http.name = encoding with 480p for cds streaming profile.cds-480p.http.input = visual profile.cds-480p.http.output = visual profile.cds-480p.http.suffix = -preview.mp4 profile.cds-480p.http.jobload = 2 profile.cds-480p.http.ffmpeg.command = -i #{in.video.path} \ -c:v libx264 -crf 23 -maxrate 800k -bufsize 800k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -filter:v scale=640:-2:force_original_aspect_ratio=decrease:force_divisible_by=2,fps=25 \ -c:a aac -b:a 32k -ac 1 \ -f mp4 #{out.dir}/#{out.name}#{out.suffix} profile.cds-360p.http.name = encoding low quality with 360p for cds streaming profile.cds-360p.http.input = visual profile.cds-360p.http.output = visual profile.cds-360p.http.suffix = -preview.mp4 profile.cds-360p.http.jobload = 2 profile.cds-360p.http.ffmpeg.command = -i #{in.video.path} \ -c:v libx264 -crf 30 -maxrate 600k -bufsize 600k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -filter:v scale=480:-2:force_original_aspect_ratio=decrease:force_divisible_by=2,fps=25 \ -c:a aac -b:a 32k -ac 1 \ -f mp4 #{out.dir}/#{out.name}#{out.suffix} profile.cds-parallel.http.name = parallel encoding of 4 qualities for cds streaming profile.cds-parallel.http.input = visual profile.cds-parallel.http.output = visual profile.cds-parallel.http.suffix.1080p-quality = -1080p.mp4 profile.cds-parallel.http.suffix.720p-quality = -720p.mp4 profile.cds-parallel.http.suffix.480p-quality = -480p.mp4 profile.cds-parallel.http.suffix.360p-quality = -360p.mp4 profile.cds-parallel.http.jobload = 4 profile.cds-parallel.http.ffmpeg.command = -i #{in.video.path} \ -c:v libx264 -crf 23 -maxrate 4000k -bufsize 8000k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -vf scale=1920:-2:force_original_aspect_ratio=decrease,fps=25 \ -c:a aac -b:a 96k -ac 1 -f mp4 #{out.dir}/#{out.name}#{out.suffix.1080p-quality} \ -c:v libx264 -crf 23 -maxrate 1200k -bufsize 2400k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -vf scale=1280:-2:force_original_aspect_ratio=decrease,fps=25 \ -c:a aac -b:a 64k -ac 1 -f mp4 #{out.dir}/#{out.name}#{out.suffix.720p-quality} \ -c:v libx264 -crf 23 -maxrate 800k -bufsize 800k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -vf scale=640:-2:force_original_aspect_ratio=decrease,fps=25 \ -c:a aac -b:a 32k -ac 1 -f mp4 #{out.dir}/#{out.name}#{out.suffix.480p-quality} -c:v libx264 -crf 30 -maxrate 600k -bufsize 600k -max_muxing_queue_size 9999 -profile:v high -level 4.0 -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -movflags +faststart \ -filter:v scale=480:-2:force_original_aspect_ratio=decrease:force_divisible_by=2,fps=25 \ -c:a aac -b:a 32k -ac 1 \ -f mp4 #{out.dir}/#{out.name}#{out.suffix} profile.studio.cds-parallel.http.name = parallel encoding of studio video in multiple qualities for cds streaming profile.studio.cds-parallel.http.input = visual profile.studio.cds-parallel.http.output = visual profile.studio.cds-parallel.http.suffix.2160p-quality = -2160p-quality.mp4 profile.studio.cds-parallel.http.suffix.1440p-quality = -1440p-quality.mp4 profile.studio.cds-parallel.http.suffix.1080p-quality = -1080p-quality.mp4 profile.studio.cds-parallel.http.suffix.720p-quality = -720p-quality.mp4 profile.studio.cds-parallel.http.suffix.480p-quality = -480p-quality.mp4 profile.studio.cds-parallel.http.jobload = 4 profile.studio.cds-parallel.http.ffmpeg.command.if-height-geq-1800 = \ -filter:v scale=w=3840:h=trunc(3840/dar/2)*2,setsar=1,fps=25 \ -c:v libx264 -tune film -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -maxrate 14800k -bufsize 14800k \ -c:a aac -b:a 128k -ac 2 \ -movflags +faststart #{out.dir}/#{out.name}#{out.suffix.2160p-quality} profile.studio.cds-parallel.http.ffmpeg.command.if-height-geq-1260 = \ -filter:v scale=w=2560:h=trunc(2560/dar/2)*2,setsar=1,fps=25 \ -c:v libx264 -tune film -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -maxrate 9800k -max_muxing_queue_size 9999 -bufsize 9800k \ -c:a aac -b:a 128k -ac 2 \ -movflags +faststart #{out.dir}/#{out.name}#{out.suffix.1440p-quality} profile.studio.cds-parallel.http.ffmpeg.command.if-height-geq-900 = \ -filter:v scale=w=1920:h=trunc(1920/dar/2)*2,setsar=1,fps=25 \ -c:v libx264 -tune film -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -maxrate 4800k -max_muxing_queue_size 9999 -bufsize 4800k \ -c:a aac -b:a 128k -ac 2 \ -movflags +faststart #{out.dir}/#{out.name}#{out.suffix.1080p-quality} profile.studio.cds-parallel.http.ffmpeg.command = -i #{in.video.path} \ #{if-height-geq-1800} \ #{if-height-geq-1260} \ #{if-height-geq-900} \ -filter:v scale=w=1280:h=trunc(1280/dar/2)*2,setsar=1,fps=25 \ -c:v libx264 -tune film -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -maxrate 2400k -max_muxing_queue_size 9999 -bufsize 2400k \ -c:a aac -b:a 128k -ac 2 \ -movflags +faststart #{out.dir}/#{out.name}#{out.suffix.720p-quality} \ -filter:v scale=w=640:h=trunc(640/dar/2)*2,setsar=1,fps=25 \ -c:v libx264 -tune film -pix_fmt yuv420p \ -x264opts keyint=25:min-keyint=25:no-scenecut -maxrate 1200k -bufsize 1200k \ -c:a aac -b:a 64k -ac 1 \ -movflags +faststart #{out.dir}/#{out.name}#{out.suffix.360p-quality} ```