diff --git a/src/misc/coders/Encoders/audio/Copy.js b/src/misc/coders/Encoders/audio/Copy.js index d6f90cf..9065c38 100644 --- a/src/misc/coders/Encoders/audio/Copy.js +++ b/src/misc/coders/Encoders/audio/Copy.js @@ -2,11 +2,10 @@ import React from 'react'; function createMapping(settings, stream) { const local = ['-codec:a', 'copy']; - /* - if(stream.codec === 'aac') { - local.push('-bsf:a', 'aac_adtstoasc'); - } -*/ + + //if (stream.codec === 'aac') { + // local.push('-bsf:a', 'aac_adtstoasc'); + //} const mapping = { global: [], diff --git a/src/misc/controls/HLS.js b/src/misc/controls/HLS.js index b1875ab..03eb0b4 100644 --- a/src/misc/controls/HLS.js +++ b/src/misc/controls/HLS.js @@ -61,11 +61,15 @@ export default function Control(props) { - M3U8 manifest version. Version 3 has the longest browser/client compatibility. + M3U8 manifest version. Version 3 has the best browser/client compatibility. diff --git a/src/utils/restreamer.js b/src/utils/restreamer.js index 1be85a3..71c993e 100644 --- a/src/utils/restreamer.js +++ b/src/utils/restreamer.js @@ -1484,54 +1484,86 @@ class Restreamer { // manifest versions // https://developer.apple.com/documentation/http_live_streaming/about_the_ext-x-version_tag // https://ffmpeg.org/ffmpeg-all.html#Options-53 - console.log(control.hls.version) + console.log(control.hls.version); if (control.hls.lhls === false) { // ordinary HLS - if (control.hls.version >= 6 && control.hls.version < 7) { + if (control.hls.version === 6) { output.options.push( - '-f', 'hls', - '-start_number', '0', - '-hls_time', '' + parseInt(control.hls.segmentDuration), - '-hls_list_size', '' + parseInt(control.hls.listSize), - '-hls_flags', 'append_list+delete_segments+program_date_time+independent_segments', - '-hls_delete_threshold', '4', - '-hls_segment_filename', `{memfs}/${channel.channelid}_%04d.ts`, - '-segment_format_options', 'mpegts_flags=mpegts_copyts=1', - '-max_muxing_queue_size', '400', + '-f', + 'hls', + '-start_number', + '0', + '-hls_time', + '' + parseInt(control.hls.segmentDuration), + '-hls_list_size', + '' + parseInt(control.hls.listSize), + '-hls_flags', + 'append_list+delete_segments+program_date_time+independent_segments', + '-hls_delete_threshold', + '4', + '-hls_segment_filename', + `{memfs}/${channel.channelid}_%04d.ts`, + '-segment_format_options', + 'mpegts_flags=mpegts_copyts=1', + '-max_muxing_queue_size', + '400', '-y', - '-method', 'PUT' + '-method', + 'PUT' ); - } else if (control.hls.version >= 7) { + } else if (control.hls.version === 7) { output.options.push( - '-f', 'hls', - '-start_number', '0', - '-hls_time', '' + parseInt(control.hls.segmentDuration), - '-hls_list_size', '' + parseInt(control.hls.listSize), - '-hls_flags', 'append_list+delete_segments+program_date_time+independent_segments', - '-hls_delete_threshold', '4', - '-hls_segment_type', 'fmp4', - '-hls_fmp4_init_filename', `${channel.channelid}_init.mp4`, - '-hls_segment_filename', `{memfs}/${channel.channelid}_%04d.mp4`, - '-segment_format_options', 'mpegts_flags=mpegts_copyts=1', - '-max_muxing_queue_size', '400', + '-f', + 'hls', + '-start_number', + '0', + '-hls_time', + '' + parseInt(control.hls.segmentDuration), + '-hls_list_size', + '' + parseInt(control.hls.listSize), + '-hls_flags', + 'append_list+delete_segments+program_date_time+independent_segments', + '-hls_delete_threshold', + '4', + '-hls_segment_type', + 'fmp4', + '-hls_fmp4_init_filename', + `${channel.channelid}_init.mp4`, + '-hls_segment_filename', + `{memfs}/${channel.channelid}_%04d.mp4`, + '-segment_format_options', + 'mpegts_flags=mpegts_copyts=1', + '-max_muxing_queue_size', + '400', '-y', - '-method', 'PUT' + '-method', + 'PUT' ); } else { output.options.push( - '-f', 'hls', - '-start_number', '0', - '-hls_time', '' + parseInt(control.hls.segmentDuration), - '-hls_list_size', '' + parseInt(control.hls.listSize), - '-hls_flags', 'append_list+delete_segments+program_date_time', - '-hls_delete_threshold', '4', - '-hls_segment_filename', `{memfs}/${channel.channelid}_%04d.ts`, - '-segment_format_options', 'mpegts_flags=mpegts_copyts=1', - '-max_muxing_queue_size', '400', + '-f', + 'hls', + '-start_number', + '0', + '-hls_time', + '' + parseInt(control.hls.segmentDuration), + '-hls_list_size', + '' + parseInt(control.hls.listSize), + '-hls_flags', + 'append_list+delete_segments+program_date_time', + '-hls_delete_threshold', + '4', + '-hls_segment_filename', + `{memfs}/${channel.channelid}_%04d.ts`, + '-segment_format_options', + 'mpegts_flags=mpegts_copyts=1', + '-max_muxing_queue_size', + '400', '-y', - '-method', 'PUT' + '-method', + 'PUT' ); - }; + } } else { // Low Latency HLS output.address = `{memfs}/${channel.channelid}.mpd`;