Menu

#103 WebM plugin expects ivfenc, which is now vpxenc

closed-fixed
nobody
None
5
2012-05-18
2011-04-08
Rob Whalley
No

Using Fedora 14, the webm plugin does not work as expected. When creating a new profile and attempting to extract from the DVD, the following error is shown in the GUI:
"The container and the video codec are incompatible."

If run from a terminal, the following message is shown when ogmrip is started:
"Plugin libogmrip-vp8.so disabled: ivfenc is missing"

yum provides */ivfenc shows that the last version of libvpx that supports
libvpx-utils-0.9.1-3.fc14.x86_64 : VP8 utilities and tools
Repo : fedora
Matched from:
Filename : /usr/bin/ivfenc

Current version installed is libvpx-utils-0.9.6-1.fc14.x86_64.

I believe this is occuring because ivfenc has now become vpxenc, see:
http://www.webmproject.org/tools/vp8-sdk/changelog.html

"ivfenc and ivfdec have been renamed to vpxenc, vpxdec."

This looks to have started with the 0.9.5 Aylesbury release, and there seem to be some changes in how the new encoder expects parameters passed to it, e.g.

"The output file must be specified with -o, rather than as the last argument.

$ ivfenc <options> INPUT OUTPUT
$ vpxenc <options> -o OUTPUT INPUT"

Discussion

  • Rob Whalley

    Rob Whalley - 2011-04-09

    Ok, after a bit of research, grepped the source for "ivfenc" and found:
    src/ogmrip-vp8.c

    The following lines are obvious target for changing...

    line 116:
    g_ptr_array_add (argv, g_strdup ("ivfenc"));

    lines 359-364:

    filename = g_find_program_in_path ("ivfenc");
    if (!filename)
    {
    g_set_error (error, OGMRIP_PLUGIN_ERROR, OGMRIP_PLUGIN_ERROR_REQ, _("ivfenc is missing"));
    return NULL;
    }

    It looks to me as though a yuv4mpeg stream is being used as the input to ivfenc/vpxenc (I know it's picky about the video input it'll take, some googling and experimentation with ffmpeg and vpxenc a couple of weeks ago gave me a few headaches). The encoding parameters are then constructed under ogmrip_vp8_command using pointer arrays I think. Not sure as my programming skills are fairly basic, but as vpxenc now needs to specify "-o" for output, my guess is that the following line would also need to be changed to include "-o".

    line 185:

    g_ptr_array_add (argv, g_strdup (output));

    Now I could just try and hack something together but like I say my programming skills are pretty limited to a basic understanding and making minor changes. Ideally, I'm thinking the code could check to see which version of libvpx-utils are installed - I can see some interesting code on lines 80-93 that deal with determining the mplayer version.

    Apologies if I'm getting this all wrong, it's just (un)educated guesses...

     
  • Olivier Rolland

    Olivier Rolland - 2012-05-18
    • status: open --> closed-fixed
     

Log in to post a comment.