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

Invalid Argument Array.fill ( writitng hls m3u8 ?) #3678

Closed
Russsgithub opened this issue Jan 29, 2024 · 1 comment
Closed

Invalid Argument Array.fill ( writitng hls m3u8 ?) #3678

Russsgithub opened this issue Jan 29, 2024 · 1 comment

Comments

@Russsgithub
Copy link

Describe the bug
Outputting to HLS with and pushing to CDN I am getting. ( On a docker deployment , not sure if thats relavent, though very well might be. )

2024/01/29 18:10:14 [clock.main:2] Source /tmp/hls/live_m3u8 failed while streaming: Invalid_argument("Array.fill")!

The full log at shutdown is

liquidsoap-1  | 2024/01/29 18:10:10 [decoder.ffmpeg:3] Requested content-type for "/tmp/liq-process068436.mp3": {audio=pcm(stereo)}
liquidsoap-1  | 2024/01/29 18:10:10 [decoder.ffmpeg:3] FFmpeg recognizes "/tmp/liq-process068436.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
liquidsoap-1  | 2024/01/29 18:10:10 [decoder.ffmpeg:3] Decoded content-type for "/tmp/liq-process068436.mp3": {audio=pcm(stereo)}
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Source /tmp/hls/live_m3u8 failed while streaming: Invalid_argument("Array.fill")!
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Raised at Stdlib.invalid_arg in file "stdlib.ml" (inlined), line 30, characters 20-45
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__Array.fill in file "array.ml", line 85, characters 7-31
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__Array.iter in file "array.ml", line 95, characters 31-48
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Add.audio_add#get_frame in file "src/core/operators/add.ml", line 150, characters 6-53
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed_fields in file "src/core/operators/muxer.ml", line 121, characters 8-22
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed in file "src/core/operators/muxer.ml", line 138, characters 8-51
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#get_frame in file "src/core/operators/muxer.ml", line 160, characters 6-31
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 785, characters 12-44
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed_fields in file "src/core/operators/muxer.ml", line 121, characters 8-22
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed in file "src/core/operators/muxer.ml", line 138, characters 8-51
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#get_frame in file "src/core/operators/muxer.ml", line 160, characters 6-31
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Add.base#feed_track in file "src/core/operators/add.ml", line 78, characters 10-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__List.fold_left in file "list.ml", line 121, characters 24-34
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Add.audio_add#get_frame in file "src/core/operators/add.ml", line 146, characters 16-40
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed_fields in file "src/core/operators/muxer.ml", line 121, characters 8-22
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed in file "src/core/operators/muxer.ml", line 138, characters 8-51
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#get_frame in file "src/core/operators/muxer.ml", line 160, characters 6-31
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 785, characters 12-44
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed_fields in file "src/core/operators/muxer.ml", line 121, characters 8-22
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#feed in file "src/core/operators/muxer.ml", line 138, characters 8-51
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Muxer.muxer#get_frame in file "src/core/operators/muxer.ml", line 160, characters 6-31
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Ladspa_op.ladspa#get_frame in file "src/core/operators/ladspa_op.ml", line 146, characters 6-20
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Lilv_op.lilv#get_frame in file "src/core/operators/lilv_op.ml", line 116, characters 6-20
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Ladspa_op.ladspa#get_frame in file "src/core/operators/ladspa_op.ml", line 146, characters 6-20
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#instrumented_get_frame in file "src/core/source.ml", line 657, characters 6-24
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Source.operator#get in file "src/core/source.ml", line 768, characters 10-41
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Output.output#output in file "src/core/outputs/output.ml", line 184, characters 10-30
liquidsoap-1  | 2024/01/29 18:10:14 [clock.main:2] Called from Clock.MkClock.clock#end_tick.(fun) in file "src/core/clock.ml", line 318, characters 16-24

To Reproduce
This can take a while to crash so not tested but i guess

s = sine(440.)

aac_lofi = %ffmpeg(format="mpegts",
                   %audio(
                     codec="aac",
                     channels=2,
                     ar=44100
                   ))

aac_midfi = %ffmpeg(format="mpegts",
                    %audio(
                      codec="aac",
                      channels=2,
                      ar=44100,
                      b="96k"
                    ))

aac_hifi = %ffmpeg(format="mpegts",
                   %audio(
                     codec="aac",
                     channels=2,
                     ar=44100,
                     b="192k"
                   ))

streams = [("aac_lofi",aac_lofi),
           ("aac_midfi", aac_midfi),
           ("aac_hifi", aac_hifi)]

def segment_name(~position,~extname,stream_name) =
  timestamp = int_of_float(time())
  duration = 2
  "#{stream_name}_#{duration}_#{timestamp}_#{position}.#{extname}"
end

output.file.hls(playlist="live.m3u8",
                fallible=true,
                segment_duration=2.0,
                segments=5,
                segments_overhead=5,
                segment_name=segment_name,
                persist_at="/tmp/path/to/state.config",
                "/tmp/path/to/hls/directory",
                streams,
                s)

would probably do it.

Expected behavior
No error no shutdown.

Version details

  • OS: [e.g. Debian, OSX] - Docker (ubuntu)
  • Version [e.g. 1.3.4] - rolling-release-2.2.x pulled today (29-01-2024) .

Install method
Docker

Thanks.

toots added a commit that referenced this issue Jan 29, 2024
@toots
Copy link
Member

toots commented Jan 29, 2024

Thanks for reporting! Fix is on its way.

@toots toots closed this as completed Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants