Could not find codec parameters for stream for mp3 audio stream in HLS segment
I'm attempting to concatenate some but not all segments in a m3u8 HLS segment list, but when I use stream copy I get this error: Could not find codec parameters for stream 1 (Audio: mp3 (mp3float) ([3][0][0][0] / 0x0003), 0 channels, fltp): unspecified frame size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Changing Changing the analyzeduration and probesize to max INT or anything between has no effect, as the warning suggests. As I dug deeper I noticed that when probing the initial segment in the new HLS segment list that I generate (with some but not all segments) many of the audio parameters are not set: PS C:\Users\gabri> ffprobe -i "Q:\FFmpeg\Segments\D_Camera5872.ts" -show_streams -print_format json ffprobe version 2021-06-27-git-49e3a8165c-full_build-www.gyan.dev Copyright (c) 2007-2021 the FFmpeg developers built with gcc 10.3.0 (Rev2, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint libavutil 57. 0.100 / 57. 0.100 libavcodec 59. 2.100 / 59. 2.100 libavformat 59. 3.101 / 59. 3.101 libavdevice 59. 0.100 / 59. 0.100 libavfilter 8. 0.103 / 8. 0.103 libswscale 6. 0.100 / 6. 0.100 libswresample 4. 0.100 / 4. 0.100 libpostproc 56. 0.100 / 56. 0.100 { [mpegts @ 0000029b4c761dc0] decoding for stream 0 failed [mpegts @ 0000029b4c761dc0] start time for stream 1 is not set in estimate_timings_from_pts [mpegts @ 0000029b4c761dc0] start time for stream 2 is not set in estimate_timings_from_pts [mpegts @ 0000029b4c761dc0] start time for stream 3 is not set in estimate_timings_from_pts [mpegts @ 0000029b4c761dc0] start time for stream 4 is not set in estimate_timings_from_pts [mpegts @ 0000029b4c761dc0] stream 1 : no TS found at start of file, duration not set [mpegts @ 0000029b4c761dc0] stream 2 : no TS found at start of file, duration not set [mpegts @ 0000029b4c761dc0] stream 3 : no TS found at start of file, duration not set [mpegts @ 0000029b4c761dc0] stream 4 : no TS found at start of file, duration not set [mpegts @ 0000029b4c761dc0] Could not find codec parameters for stream 1 (Audio: mp3 (mp3float) ([3][0][0][0] / 0x0003), 0 channels, fltp): unspecified frame size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options [mpegts @ 0000029b4c761dc0] Could not find codec parameters for stream 2 (Audio: mp3 (mp3float) ([3][0][0][0] / 0x0003), 0 channels, fltp): unspecified frame size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options [mpegts @ 0000029b4c761dc0] Could not find codec parameters for stream 3 (Audio: mp3 (mp3float) ([3][0][0][0] / 0x0003), 0 channels, fltp): unspecified frame size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options [mpegts @ 0000029b4c761dc0] Could not find codec parameters for stream 4 (Audio: mp3 (mp3float) ([3][0][0][0] / 0x0003), 0 channels, fltp): unspecified frame size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Input #0, mpegts, from 'Q:\FFmpeg\Segments\D_Camera5872.ts': Duration: 00:00:06.00, start: 35233.434022, bitrate: 207448 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 3840x2160 [SAR 1:1 DAR 16:9], 60 fps, 60 tbr, 90k tbn Stream #0:1[0x101]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, fltp Stream #0:2[0x102]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, fltp Stream #0:3[0x103]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, fltp Stream #0:4[0x104]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, fltp "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10", "profile": "Main", "codec_type": "video", "codec_tag_string": "[27][0][0][0]", "codec_tag": "0x001b", "width": 3840, "height": 2160, "coded_width": 3840, "coded_height": 2160, "closed_captions": 0, "has_b_frames": 0, "sample_aspect_ratio": "1:1", "display_aspect_ratio": "16:9", "pix_fmt": "yuv420p", "level": 52, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "false", "nal_length_size": "0", "id": "0x100", "r_frame_rate": "60/1", "avg_frame_rate": "60/1", "time_base": "1/90000", "start_pts": 3171009062, "start_time": "35233.434022", "duration_ts": 540000, "duration": "6.000000", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } }, { "index": 1, "codec_name": "mp3", "codec_long_name": "MP3 (MPEG audio layer 3)", "codec_type": "audio", "codec_tag_string": "[3][0][0][0]", "codec_tag": "0x0003", "sample_fmt": "fltp", "sample_rate": "0", "channels": 0, "bits_per_sample": 0, "id": "0x101", "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/90000", "start_pts": 3171009062, "start_time": "35233.434022", "duration_ts": 540000, "duration": "6.000000", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } }, { "index": 2, "codec_name": "mp3", "codec_long_name": "MP3 (MPEG audio layer 3)", "codec_type": "audio", "codec_tag_string": "[3][0][0][0]", "codec_tag": "0x0003", "sample_fmt": "fltp", "sample_rate": "0", "channels": 0, "bits_per_sample": 0, "id": "0x102", "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/90000", "start_pts": 3171009062, "start_time": "35233.434022", "duration_ts": 540000, "duration": "6.000000", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } }, { "index": 3, "codec_name": "mp3", "codec_long_name": "MP3 (MPEG audio layer 3)", "codec_type": "audio", "codec_tag_string": "[3][0][0][0]", "codec_tag": "0x0003", "sample_fmt": "fltp", "sample_rate": "0", "channels": 0, "bits_per_sample": 0, "id": "0x103", "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/90000", "start_pts": 3171009062, "start_time": "35233.434022", "duration_ts": 540000, "duration": "6.000000", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } }, { "index": 4, "codec_name": "mp3", "codec_long_name": "MP3 (MPEG audio layer 3)", "codec_type": "audio", "codec_tag_string": "[3][0][0][0]", "codec_tag": "0x0003", "sample_fmt": "fltp", "sample_rate": "0", "channels": 0, "bits_per_sample": 0, "id": "0x104", "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/90000", "start_pts": 3171009062, "start_time": "35233.434022", "duration_ts": 540000, "duration": "6.000000", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } } ] } And these are the settings I used to generate that segment, the output of this command has no errors or warnings (JSON format): "D_Camera": [ "-y", "-stats_period", "2", "-guess_layout_max", "0", "-thread_queue_size", "9999", "-indexmem", "9999", "-f", "dshow", "-rtbufsize", "2147.48M", "-video_size", "3840x2160", "-pixel_format", "nv12", "-i", "video=\"Game Capture 4K60 Pro MK.2 (2)\":audio=\"MADI (191+192) (RME HDSPe MADI FX)\"", "-guess_layout_max", "0", "-thread_queue_size", "9999", "-indexmem", "9999", "-f", "dshow", "-rtbufsize", "2147.48M", "-i", "audio=\"MADI (183+184) (RME HDSPe MADI FX)\"", "-guess_layout_max", "0", "-thread_queue_size", "9999", "-indexmem", "9999", "-f", "dshow", "-rtbufsize", "2147.48M", "-i", "audio=\"MADI (3+4) (RME HDSPe MADI FX)\"", "-guess_layout_max", "0", "-thread_queue_size", "9999", "-indexmem", "9999", "-f", "dshow", "-rtbufsize", "2147.48M", "-i", "audio=\"MADI (181+182) (RME HDSPe MADI FX)\"", "-map", "0", "-map", "1", "-map", "2", "-map", "3", "-c:v", "h264_nvenc", "-gpu", "1", "-preset", "p1", "-pix_fmt", "nv12", "-r", "60", "-rc-lookahead", "120", "-forced-idr", "1", "-force_key_frames", "\"expr:gte(t,n_forced*2)\"", "-b:v", "200M", "-minrate", "200M", "-maxrate", "200M", "-bufsize", "200M", "-c:a", "mp3", "-ac", "2", "-ar", "48000", "-b:a", "320k", "-vsync", "1", "-max_muxing_queue_size", "9999", "-f", "hls", "-hls_flags", "delete_segments", "-hls_time", "6", "-hls_list_size", "1500", "-hls_segment_filename", "\"\\\\192.168.3.4\\A Sexy Q-Drive\\FFmpeg\\Segments\\D_Camera%01d.ts\"", "\"\\\\192.168.3.4\\A Sexy Q-Drive\\FFmpeg\\Segments\\D_Camera.m3u8\"" ] I think the issue is that sometimes these audio devices aren't playing any audio for the duration of the segment, and thus even though I've given the segment audio parameters they don't populate because there is no data. Maybe this is wrong? If that is the case though... I wonder if what I need is some sort of audio filter that just packs in dummy audio when there isn't any audio in its place. Whatever the solution I'm hoping this can be solved upon generation of the segment files and not in post, any help is much appreciated.
0 On Sun, 21 Nov 2021 at 17:42, Gabriel Balaich <roderrooder@gmail.com> wrote:
I'm attempting to concatenate some but not all segments in a m3u8 HLS segment list, but when I use stream copy I get this error:
Could not find codec parameters for stream 1 (Audio: mp3 (mp3float) ([3][0][0][0] / 0x0003), 0 channels, fltp): unspecified frame size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Changing
Changing the analyzeduration and probesize to max INT or anything between has no effect, as the warning suggests. As I dug deeper I noticed that when probing the initial segment in the new HLS segment list that I generate (with some but not all segments) many of the audio parameters are not set:
I think the issue is that sometimes these audio devices aren't playing any audio for the duration of the segment, and thus even though I've given the segment audio parameters they don't populate because there is no data. Maybe this is wrong? If that is the case though... I wonder if what I need is some sort of audio filter that just packs in dummy audio when there isn't any audio in its place.
Whatever the solution I'm hoping this can be solved upon generation of the segment files and not in post, any help is much appreciated.
Any ideas? Just to recap, it seems that when there's no activity on my audio interface FFmpeg just ommits audio data entirely for any given segment (at least it would appear). I'd think someone else out there is doing something similar; generating a segment list, and then modifying the segment list to build only part of the total buffer. For example, I keep 3 hours of segments, but I want to build only the last 5 minutes, or 10 minutes of footage from 30 minutes ago. Think I may have to resort to re-encoding the audio instead of using stream copy, which could add a lot of time to building the concatenated files 😬
participants (1)
-
Gabriel Balaich