#10678: Sporadic "Error parsing Cues... Operation not permitted" errors when
trying
to generate a DASH manifest
-------------------------------------+-------------------------------------
Reporter: Kerry | Type: defect
Shetline |
Status: new | Priority: normal
Component: ffmpeg | Version: 6.0
Keywords: dash webm | Blocked By:
manifest cues |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
I have already-generated .webm audio and video files (1 audio, 3 video
resolutions for each video I want to stream). The video has been generated
not by ffmpeg, but HandbrakeCLI 1.7.0, with V9 encoding. The audio (which
has never caused an error) is generated by ffmpeg using libvorbis.
Most of the time ffmpeg creates a manifest without any problem.
Sporadically, however, "Error parsing Cues" comes up, maybe 1 out of 5
times, and I can't create a manifest. Since this is happening during an
automated process to process many videos for streaming, the audio and
video sources are being created exactly the same way whether ffmpeg
succeeds or fails in generating a manifest, making this all the more
confusing.
The video files ffmpeg chokes on play perfectly well using VLC, and
mediainfo doesn't show any problems with the files.
How to reproduce:
Here is the command I've been using:
{{{
ffmpeg -v 9 -loglevel 99 -f webm_dash_manifest -i '.\Sample
Video.v480.webm' -f webm_dash_manifest -i '.\Sample Video.v720.webm' -f
webm_dash_manifest -i '.\Sample Video.v1080.webm' -f webm_dash_manifest -i
'.\Sample Video.audio.webm' -c copy -map 0 -map 1 -map 2 -map 3 -f
webm_dash_manifest -adaptation_sets "id=0,streams=0,1,2 id=1,streams=3"
'.\Sample Video.mpd'
}}}
Here is the output generated:
{{{
ffmpeg version 6.1-full_build-www.gyan.dev Copyright (c) 2000-2023 the
FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --pkg-
config=pkgconf --disable-w32threads --disable-autodetect --enable-
fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp
--enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-
librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
--enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
--enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-
libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-
libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-
libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-
libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun
--enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
--enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
--enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-
libshaderc --enable-vulkan --enable-libplacebo --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-libcodec2 --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 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
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'webm_dash_manifest'.
Reading option '-i' ... matched as output url with argument '.\Sample
Video.v480.webm'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'webm_dash_manifest'.
Reading option '-i' ... matched as output url with argument '.\Sample
Video.v720.webm'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'webm_dash_manifest'.
Reading option '-i' ... matched as output url with argument '.\Sample
Video.v1080.webm'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'webm_dash_manifest'.
Reading option '-i' ... matched as output url with argument '.\Sample
Video.audio.webm'.
Reading option '-c' ... matched as option 'c' (codec name) with argument
'copy'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '0'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '2'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '3'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'webm_dash_manifest'.
Reading option '-adaptation_sets' ... matched as AVOption
'adaptation_sets' with argument 'id=0,streams=0,1,2 id=1,streams=3'.
Reading option '.\Sample Video.mpd' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url .\Sample Video.v480.webm.
Applying option f (force format) with argument webm_dash_manifest.
Successfully parsed a group of options.
Opening an input file: .\Sample Video.v480.webm.
[webm_dash_manifest @ 000002bbcb41dc80] Opening '.\Sample Video.v480.webm'
for reading
[file @ 000002bbcb41e300] Setting default whitelist 'file,crypto,data'
st:0 removing common factor 1000000 from timebase
[webm_dash_manifest @ 000002bbcb41dc80] Error parsing Cues
[AVIOContext @ 000002bbcb41e5c0] Statistics: 102283 bytes read, 4 seeks
[in#0 @ 000002bbcb41dac0] Error opening input: Operation not permitted
Error opening input file .\Sample Video.v480.webm.
Error opening input files: Operation not permitted
}}}
mediainfo for offending input file:
{{{
mediainfo '.\Sample Video.v480.webm'
General
Complete name : .\Sample Video.v480.webm
Format : WebM
Format version : Version 2
File size : 628 MiB
Duration : 1 h 34 min
Overall bit rate : 926 kb/s
Frame rate : 23.976 FPS
Encoded date : 2023-11-21 16:48:35 UTC
Writing application : HandBrake 1.7.0 2023111500
Writing library : Lavf60.16.100
Video
ID : 1
Format : VP9
Format profile : 0
Codec ID : V_VP9
Duration : 1 h 34 min
Bit rate : 882 kb/s
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Bits/(Pixel*Frame) : 0.106
Stream size : 598 MiB (95%)
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10678>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac
To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".