Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

invalid value "thumb" in "vod" directive #498

Closed
anhngodangquoc opened this issue Dec 22, 2016 · 10 comments
Closed

invalid value "thumb" in "vod" directive #498

anhngodangquoc opened this issue Dec 22, 2016 · 10 comments

Comments

@anhngodangquoc
Copy link

anhngodangquoc commented Dec 22, 2016

I install kaltura-nginx and kaltura ffmpeg by yum already. lasttime it work ok, i can get thumb from video. But today, i try to restart kaltura-nginx and i got:

nginx: [emerg] invalid value "thumb" in "vod" directive, it must be one of: none,dash,hds,hls,mss

what can i do now?

kaltura-nginx-1.10.2-4.x86_64
kaltura-ffmpeg-3.2-1.x86_64

@erankor
Copy link
Contributor

erankor commented Dec 27, 2016

This was caused by a change in ffmpeg API (the functions used for thumbnail grabbing became deprecated in the latest ffmpeg). We've just finished updating the code to work against the new API, a new package will be available on Sunday.

@jessp01
Copy link
Contributor

jessp01 commented Dec 28, 2016

Hello @anhngodangquoc,

Like @erankor wrote, the next stable release will include kaltura-nginx compiled against ffmpeg 3.2 and will be released on Sun [Jan 8].
However, you can already obtain the new version from the nightly repo.
For RHEL/CentOS 6 use:

[Kaltura]
name = Kaltura Server
baseurl = http://installrepo.origin.kaltura.org/releases/nightly/RPMS/$basearch/
gpgkey = http://installrepo.kaltura.org/releases/RPM-GPG-KEY-kaltura
gpgcheck = 1
enabled = 1

For RHEL/CentOS 7 use:

[Kaltura]
name = Kaltura Server
baseurl = http://installrepo.origin.kaltura.org/releases/rhel7/RPMS/$basearch/
gpgkey = http://installrepo.kaltura.org/releases/RPM-GPG-KEY-kaltura
gpgcheck = 1
enabled = 1

@jessp01
Copy link
Contributor

jessp01 commented Jan 10, 2017

The stable repo now contains kaltura-nginx packages compiled with the latest vod module tag [1.12] and ffmpeg 3.2 so both vod features that require ffmpeg should now work correctly.

@jessp01 jessp01 closed this as completed Jan 10, 2017
@likai1993
Copy link

Hi, @jessp01
My linux operate system is SUSE . How should i compile my nginx (add nginx vod mudule) to support thumbnail capture function?

@jessp01
Copy link
Contributor

jessp01 commented May 4, 2017

Hi @RecareLee,

We only ship packages for RHEL/CentOS and Debian/Ubuntu. SLES also uses the RPM format for packaging however, it often has different package names and file paths and so, trying to install the RPM packages meant for RHEL/CentOS has the potential of failing.

You can compile the Nginx VOD module from source. In order to make use of the thumbnail capture feature, you need to have FFmpeg 3.2 on your machine, both the shared objects and the header files are needed.
If you use Nginx >= 1.9.11, you can compile the VOD module as a DSO, if you're using an older Nginx version, you will need to compile it statically into the Nginx binary.
This is explained here:
https://github.com/kaltura/nginx-vod-module#build

If your FFmpeg is not installed onto a path the compiler, linker and dynamic loader look at by default, you'll need to export the following ENV vars to include the paths, like so:

LD_LIBRARY_PATH=$FFMPEG_BASEDIR/lib
LIBRARY_PATH=$FFMPEG_BASEDIR/lib
C_INCLUDE_PATH=$FFMPEG_BASEDIR/include

@likai1993
Copy link

likai1993 commented May 5, 2017

Thanks @jessp01 , i just have already get the ffmpeg-master source code in my linux environment. the ffmpeg source code's directory is:

libavcodec
libavdevice
libavfilter
libavformat
libavresample
libavutil
libpostproc
library.mak
libswresample
libswscale
presets
tests
tools
version.sh

how should i configure the ENV vars?

@jessp01
Copy link
Contributor

jessp01 commented May 6, 2017

Hi @RecareLee,

Having the FFmpeg source is not enough, you need to compile it.
If you run ffmpeg's configure command without --prefix, the prefix will be /usr/local.
Once compiled, you need to set ENV vars as I wrote before:

LD_LIBRARY_PATH=$FFMPEG_PREFIX/lib
LIBRARY_PATH=$FFMPEG_PREFIX/lib
C_INCLUDE_PATH=$FFMPEG_PREFIX/include

@likai1993
Copy link

Sorry, @jessp01 , i compiled ffmpeg without --prefix, there were some ffmpeg's '.a' files on the path /usr/local/lib, however it still failed when configured thumb directive..

ls /usr/local/lib/libav*

/usr/local/lib/libavcodec.a
/usr/local/lib/libavdevice.a
/usr/local/lib/libavfilter.a
/usr/local/lib/libavformat.a
/usr/local/lib/libavutil.a

@jessp01
Copy link
Contributor

jessp01 commented May 8, 2017

Hi @RecareLee,

This feature requires libavcodec, which according to your output, you've got the archive file for, though I recommend you link against the SO and not the archive [dynamic linkage vs. static].

If you installed FFmpeg onto /usr/local, the ENV vars should be exported like so:

LD_LIBRARY_PATH=/usr/local/lib
LIBRARY_PATH=/usr/local/lib
C_INCLUDE_PATH=/usr/local/include

At any rate, the tests to determine whether the lib is available are done here: https://github.com/kaltura/nginx-vod-module/blob/master/config#L60

I suggest you take a look at the configure output and also at objs/autoconf.err to see why libavcodec is not found.

@likai1993
Copy link

likai1993 commented May 9, 2017

Hi,@jessp01
The output when i try to configure ffmpeg to /usr/local is as following:

License: LGPL version 2.1 or later
Creating config.mak, config.h, and doc/config.texi...
config.h is unchanged
config.asm is unchanged
libavutil/avconfig.h is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/protocol_list.c is unchanged

i found the ffmpeg configure process need Git supported, should i install Git first?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants