VideoHelp Forum
+ Reply to Thread
Results 1 to 5 of 5
Thread
  1. Member
    Join Date
    Feb 2024
    Location
    Germany
    Search Comp PM
    Originally Posted by zuka1337 View Post
    Any help with this , using ffmpeg 4 on ubuntu 18 and got Unrecognized option 'cenc_decryption_key'.
    Error splitting the argument list: Option not found error
    The issue arises also with Ubuntu 22.04 and ffmpeg n6.1.1! Nobody experiencing this issue ?? Any solution hints?
    Quote Quote  
  2. never used the option (I don't capture stuff), but it is from libavformat/dashdec.c ,
    Code:
    static const AVOption dash_options[] = {
        {"allowed_extensions", "List of file extensions that dash is allowed to access",
            OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
            {.str = "aac,m4a,m4s,m4v,mov,mp4,webm,ts"},
            INT_MIN, INT_MAX, FLAGS},
        { "cenc_decryption_key", "Media decryption key (hex)", OFFSET(cenc_decryption_key), AV_OPT_TYPE_STRING, {.str = NULL}, INT_MIN, INT_MAX, .flags = FLAGS },
        {NULL}
    };
    see: https://ffmpeg.org/doxygen/trunk/dashdec_8c_source.html

    So the libav version you are using might be the problem.
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  3. Member
    Join Date
    Feb 2024
    Location
    Germany
    Search Comp PM
    Originally Posted by Selur View Post
    never used the option (I don't capture stuff), but it is from libavformat/dashdec.c ,
    Code:
    static const AVOption dash_options[] = {
        {"allowed_extensions", "List of file extensions that dash is allowed to access",
            OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
            {.str = "aac,m4a,m4s,m4v,mov,mp4,webm,ts"},
            INT_MIN, INT_MAX, FLAGS},
        { "cenc_decryption_key", "Media decryption key (hex)", OFFSET(cenc_decryption_key), AV_OPT_TYPE_STRING, {.str = NULL}, INT_MIN, INT_MAX, .flags = FLAGS },
        {NULL}
    };
    see: https://ffmpeg.org/doxygen/trunk/dashdec_8c_source.html

    So the libav version you are using might be the problem.
    Hi thanks, I found this too, but, do you know how this could be used as a command line option in ffmpeg? It seems to me that
    Code:
    dash_options
    as well as
    Code:
    dash_class
    and
    Code:
    ff_dash_demuxer
    are not referenced by anything else. Ok so how would be the libavformat lib be accessed from ffmpeg? I don't understand this exactly, for me it is unconnected to any leading ffmpeg process. That would explain why the option is invalid and not recognized when calling...

    Code:
     #define OFFSET(x) offsetof(DASHContext, x)
     #define FLAGS AV_OPT_FLAG_DECODING_PARAM
     static const AVOption dash_options[] = {
         {"allowed_extensions", "List of file extensions that dash is allowed to access",
             OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
             {.str = "aac,m4a,m4s,m4v,mov,mp4,webm,ts"},
             INT_MIN, INT_MAX, FLAGS},
         { "cenc_decryption_key", "Media decryption key (hex)", OFFSET(cenc_decryption_key), AV_OPT_TYPE_STRING, {.str = NULL}, INT_MIN, INT_MAX, .flags = FLAGS },
         {NULL}
     };
     
     static const AVClass dash_class = {
         .class_name = "dash",
         .item_name  = av_default_item_name,
         .option     = dash_options,
         .version    = LIBAVUTIL_VERSION_INT,
     };
     
     const AVInputFormat ff_dash_demuxer = {
         .name           = "dash",
         .long_name      = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
         .priv_class     = &dash_class,
         .priv_data_size = sizeof(DASHContext),
         .flags_internal = FF_FMT_INIT_CLEANUP,
         .read_probe     = dash_probe,
         .read_header    = dash_read_header,
         .read_packet    = dash_read_packet,
         .read_close     = dash_close,
         .read_seek      = dash_read_seek,
         .flags          = AVFMT_NO_BYTE_SEEK,
     };
    So do you know how the external defined ff_dash_demuxer is used here in fffmpeg? And how AVInputFormat is used to parse the command line?
    Quote Quote  
  4. Member
    Join Date
    Feb 2006
    Location
    United States
    Search Comp PM
    Originally Posted by peddanet View Post
    Originally Posted by Selur View Post
    never used the option (I don't capture stuff), but it is from libavformat/dashdec.c ,
    Code:
    static const AVOption dash_options[] = {
        {"allowed_extensions", "List of file extensions that dash is allowed to access",
            OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
            {.str = "aac,m4a,m4s,m4v,mov,mp4,webm,ts"},
            INT_MIN, INT_MAX, FLAGS},
        { "cenc_decryption_key", "Media decryption key (hex)", OFFSET(cenc_decryption_key), AV_OPT_TYPE_STRING, {.str = NULL}, INT_MIN, INT_MAX, .flags = FLAGS },
        {NULL}
    };
    see: https://ffmpeg.org/doxygen/trunk/dashdec_8c_source.html

    So the libav version you are using might be the problem.
    Hi thanks, I found this too, but, do you know how this could be used as a command line option in ffmpeg? It seems to me that
    Code:
    dash_options
    as well as
    Code:
    dash_class
    and
    Code:
    ff_dash_demuxer
    are not referenced by anything else. Ok so how would be the libavformat lib be accessed from ffmpeg? I don't understand this exactly, for me it is unconnected to any leading ffmpeg process. That would explain why the option is invalid and not recognized when calling...

    Code:
     #define OFFSET(x) offsetof(DASHContext, x)
     #define FLAGS AV_OPT_FLAG_DECODING_PARAM
     static const AVOption dash_options[] = {
         {"allowed_extensions", "List of file extensions that dash is allowed to access",
             OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
             {.str = "aac,m4a,m4s,m4v,mov,mp4,webm,ts"},
             INT_MIN, INT_MAX, FLAGS},
         { "cenc_decryption_key", "Media decryption key (hex)", OFFSET(cenc_decryption_key), AV_OPT_TYPE_STRING, {.str = NULL}, INT_MIN, INT_MAX, .flags = FLAGS },
         {NULL}
     };
     
     static const AVClass dash_class = {
         .class_name = "dash",
         .item_name  = av_default_item_name,
         .option     = dash_options,
         .version    = LIBAVUTIL_VERSION_INT,
     };
     
     const AVInputFormat ff_dash_demuxer = {
         .name           = "dash",
         .long_name      = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
         .priv_class     = &dash_class,
         .priv_data_size = sizeof(DASHContext),
         .flags_internal = FF_FMT_INIT_CLEANUP,
         .read_probe     = dash_probe,
         .read_header    = dash_read_header,
         .read_packet    = dash_read_packet,
         .read_close     = dash_close,
         .read_seek      = dash_read_seek,
         .flags          = AVFMT_NO_BYTE_SEEK,
     };
    So do you know how the external defined ff_dash_demuxer is used here in fffmpeg? And how AVInputFormat is used to parse the command line?
    what is the ffmpeg command that you are using ??
    see this thread page 2 post #33 - https://forum.videohelp.com/threads/400424-Downloading-DRM-protected-video-and-decrypt...nown-key/page2
    Quote Quote  
  5. Like I wrote, I never used 'cenc_decryption_key', the used demuxer in ffmpeg will normally be decided depending on the input file.
    Calling 'ffmpeg -demuxers' I get:
    Code:
    ...
     D  dash            Dynamic Adaptive Streaming over HTTP
    ...
    so this will probably only be used if the source is http/https.
    I agree october262: What does your command line look like?
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!