0

I'm trying to use ffmpeg to get a 10-second clip from the middle of a video. The execution time of the command is important, that's why I've decided to use combined input & output seeking (as illustrated here). The input video file is a CMAF with fragmented MP4, duration of 10 minutes.

I'm testing on a Mac, Ffmpeg version is 6.1.1.

This is the command that I'm using:

ffmpeg -nostdin -y -ss 290 -copyts -start_at_zero -i https://devcdn.flowplayer.com/5f07362e-c358-41d0-857a-c64302a3fcc9/cmaf/17bdb16d-71d1-414c-a291-a028bd45b9ec/playlist_360.m3u8 -ss 300.0 -t 10 -vcodec libwebp -lossless 0 -quality 60 -compression_level 2 -loop 0 -an -sn output.webp

Result: no output file is created.

From what I understand it fails to seek position "290" in the video, probably due to "Invalid NAL unit size" errors.

Here's the output:

ffmpeg version N-106797-g580fb6a8c9-tessus Copyright (c) 2000-2022 the FFmpeg developersbuilt with Apple clang version 11.0.0 (clang-1100.0.33.17)configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplaylibavutil      57. 24.101 / 57. 24.101libavcodec     59. 27.100 / 59. 27.100libavformat    59. 23.100 / 59. 23.100libavdevice    59.  6.100 / 59.  6.100libavfilter     8. 37.100 /  8. 37.100libswscale      6.  6.100 /  6.  6.100libswresample   4.  6.100 /  4.  6.100libpostproc    56.  5.100 / 56.  5.100Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://devcdn.flowplayer.com/5f07362e-c358-41d0-857a-c64302a3fcc9/cmaf/17bdb16d-71d1-414c-a291-a028bd45b9ec/playlist_360.cmfv':Metadata:major_brand     : isomminor_version   : 1compatible_brands: isomavc1dashcmfccreation_time   : 2024-01-30T07:41:03.000000ZDuration: 00:09:56.54, start: 0.083333, bitrate: 458 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 640x360 [SAR 1:1 DAR 16:9], 1 kb/s, 24 fps, 24 tbr, 90k tbn (default)Metadata:creation_time   : 2024-01-30T07:41:03.000000Zhandler_name    : ETI ISO Video Media Handlervendor_id       : [0][0][0]ffmpeg version 6.1.1-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
[hls @ 0x7fc7bb904280] Skip ('#EXT-X-VERSION:6')
[hls @ 0x7fc7bb904280] Opening 'https://devcdn.flowplayer.com/5f07362e-c358-41d0-857a-c64302a3fcc9/cmaf/17bdb16d-71d1-414c-a291-a028bd45b9ec/playlist_360.cmfv' for reading
    Last message repeated 2 times
Input #0, hls, from '[**]/playlist_360.m3u8':
  Duration: 00:09:56.46, start: 0.083333, bitrate: 0 kb/s
  Program 0 
    Metadata:
      variant_bitrate : 0
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 640x360 [SAR 1:1 DAR 16:9], 1 kb/s, 24 fps, 24 tbr, 90k tbn (default)
    Metadata:
      variant_bitrate : 0
      compatible_brands: isomavc1dashcmfc
      handler_name    : ETI ISO Video Media Handler
      vendor_id       : [0][0][0][0]
      encoder         : Elemental H.264
      major_brand     : isom
      minor_version   : 1
      creation_time   : 2024-01-30T07:41:03.000000Z
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> webp (libwebp))
[hls @ 0x7fc7bb904280] Opening 'https://devcdn.flowplayer.com/5f07362e-c358-41d0-857a-c64302a3fcc9/cmaf/17bdb16d-71d1-414c-a291-a028bd45b9ec/playlist_360.cmfv' for reading
    Last message repeated 2 times
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1772342253 > 1534).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1538
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1977545460 > 1481).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1485
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1694403391 > 1582).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1586
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1404850266 > 1661).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1665
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (703351242 > 1680).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1684
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-836978648 > 1751).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1755
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (752797651 > 1867).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1871
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1831058223 > 1833).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 1837
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1238958831 > 2067).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2071
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (435683248 > 2090).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2094
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (2136335178 > 2229).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2233
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1468707300 > 2203).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2207
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (482758774 > 2402).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2406
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1079612217 > 2417).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2421
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-608087491 > 2546).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2550
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-1457748625 > 2527).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2531
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1933919710 > 2734).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2738
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1004643870 > 2803).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2807
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-207765435 > 2988).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2992
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-196888537 > 2306).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2310
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1118966683 > 2620).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2624
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1325583054 > 2715).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2719
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-2003602869 > 2906).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2910
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1666330272 > 3085).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 3089
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (-742329993 > 2593).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2597
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (1326266794 > 2347).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2351
[NULL @ 0x7fc7bb804f40] Invalid NAL unit size (2459776 > 2155).
[NULL @ 0x7fc7bb804f40] missing picture in access unit with size 2159
[https @ 0x7fc7ba022a00] Opening 'https://devcdn.flowplayer.com/5f07362e-c358-41d0-857a-c64302a3fcc9/cmaf/17bdb16d-71d1-414c-a291-a028bd45b9ec/playlist_360.cmfv' for reading
[...]
[vost#0:0/libwebp @ 0x7fc7bbb05780] No filtered frames for output stream, trying to initialize anyway.
Output #0, webp, to 'output.webp':
  Metadata:
    encoder         : Lavf60.16.100
  Stream #0:0(und): Video: webp, yuv420p(progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 24 fps, 1k tbn (default)
    Metadata:
      variant_bitrate : 0
      compatible_brands: isomavc1dashcmfc
      handler_name    : ETI ISO Video Media Handler
      vendor_id       : [0][0][0][0]
      creation_time   : 2024-01-30T07:41:03.000000Z
      major_brand     : isom
      minor_version   : 1
      encoder         : Lavc60.31.102 libwebp
[out#0/webp @ 0x7fc7bbb04900] video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[out#0/webp @ 0x7fc7bbb04900] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)
frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=N/A bitrate=N/A speed=N/A 

What I've tried so far:

  1. Downloaded the input file to a local directory and used it as input to ffmpeg - same results.

  2. Used the mp4 file from the playlist directly as an input to ffmpeg - worked but the execution time is very slow

  3. Emmited the input seeking part (-ss 290 -copyts -start_at_zero) from the command - worked but also very slow in terms of execution time

Do you have any ideas on why I'm getting "Invalid NAL unit size" and how to make the command work with input seeking?

1
  • FFMpeg indeed creates an empty file with said error if I provide URL. However once I download the file, e.g. using youtube-dl which creates playlist_360.mp4, FFMpeg has no issues to encode into webp output file. I have a following FFMpeg version: ffmpeg version N-113482-g36a986d9a1 Copyright (c) 2000-2024, including enabled libwebp.
    – Celdor
    Jan 31 at 14:39

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.