wandenberg / nginx-video-thumbextractor-module

Nginx module to extract thumbs from a video file
Other
204 stars 38 forks source link

Got errors when make install #12

Closed zikoops closed 3 years ago

zikoops commented 7 years ago

Hello there,

I have got some errors when trying to install this module.

/tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module.c In file included from /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module.c:28: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:27:34: error: libavformat/avformat.h: No such file or directory /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:28:32: error: libswscale/swscale.h: No such file or directory /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:29:34: error: libavfilter/avfilter.h: No such file or directory /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:30:36: error: libavfilter/buffersink.h: No such file or directory /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:31:35: error: libavfilter/buffersrc.h: No such file or directory /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:32:21: error: jpeglib.h: No such file or directory In file included from /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module.c:28: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:39: error: expected ‘)’ before ‘cinfo’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:41: error: expected declaration specifiers or ‘...’ before ‘AVFormatContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:41: error: expected declaration specifiers or ‘...’ before ‘AVCodecContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:42: error: expected declaration specifiers or ‘...’ before ‘AVFormatContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:42: error: expected declaration specifiers or ‘...’ before ‘AVCodecContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:42: error: expected declaration specifiers or ‘...’ before ‘AVFilterGraph’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:42: error: expected declaration specifiers or ‘...’ before ‘AVFilterContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:42: error: expected declaration specifiers or ‘...’ before ‘AVFilterContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:43: error: expected ‘)’ before ‘*’ token /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:44: error: expected declaration specifiers or ‘...’ before ‘AVFormatContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:44: error: expected declaration specifiers or ‘...’ before ‘AVCodecContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:44: error: expected declaration specifiers or ‘...’ before ‘AVFrame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘ngx_http_video_thumbextractor_seek_data_from_file’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:50: error: ‘AVSEEK_SIZE’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:50: error: (Each undeclared identifier is reported only once /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:50: error: for each function it appears in.) cc1: warnings being treated as errors /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘ngx_http_video_thumbextractor_read_data_from_file’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:69: error: implicit declaration of function ‘AVERROR’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘ngx_http_video_thumbextractor_get_thumb’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:83: error: ‘AVFormatContext’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:83: error: ‘pFormatCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:84: error: ‘AVCodecContext’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:84: error: ‘pCodecCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:85: error: ‘AVCodec’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:85: error: ‘pCodec’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:86: error: ‘AVFrame’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:86: error: ‘pFrame’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:89: error: ‘AVIOContext’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:89: error: ‘pAVIOCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:92: error: ‘AVFilterContext’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:92: error: ‘buffersink_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:93: error: ‘buffersrc_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:94: error: ‘AVFilterGraph’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:94: error: ‘filter_graph’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:121: error: implicit declaration of function ‘avformat_alloc_context’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:122: error: implicit declaration of function ‘av_malloc’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:122: error: cast to pointer from integer of different size /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:128: error: implicit declaration of function ‘avio_alloc_context’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:137: error: implicit declaration of function ‘avformat_open_input’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:144: error: implicit declaration of function ‘avformat_find_stream_info’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:149: error: ‘float_t’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:149: error: expected ‘)’ before ‘pFormatCtx’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:156: error: implicit declaration of function ‘av_find_best_stream’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:156: error: ‘AVMEDIA_TYPE_VIDEO’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:163: error: implicit declaration of function ‘avcodec_alloc_context3’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:164: error: implicit declaration of function ‘avcodec_parameters_to_context’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:166: error: ‘AVDictionary’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:166: error: ‘dict’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:168: error: implicit declaration of function ‘av_dict_set’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:171: error: implicit declaration of function ‘avcodec_open2’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:176: error: too many arguments to function ‘setup_parameters’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:178: error: too many arguments to function ‘setup_filters’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:183: error: implicit declaration of function ‘av_frame_alloc’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:190: error: too many arguments to function ‘get_frame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:191: error: ‘AV_PICTURE_TYPE_NONE’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:196: error: implicit declaration of function ‘filter_frame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:233: error: implicit declaration of function ‘av_frame_free’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:237: error: implicit declaration of function ‘avcodec_close’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:238: error: implicit declaration of function ‘avcodec_free_context’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:242: error: implicit declaration of function ‘avformat_close_input’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:246: error: implicit declaration of function ‘av_freep’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:250: error: implicit declaration of function ‘avfilter_graph_free’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘ngx_http_video_thumbextractor_init_libraries’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:260: error: implicit declaration of function ‘av_register_all’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:261: error: implicit declaration of function ‘avfilter_register_all’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:262: error: implicit declaration of function ‘av_log_set_level’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:262: error: ‘AV_LOG_ERROR’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘ngx_http_video_thumbextractor_jpeg_compress’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:269: error: storage size of ‘cinfo’ isn’t known /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:270: error: storage size of ‘jerr’ isn’t known /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:271: error: ‘JSAMPROW’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:271: error: expected ‘;’ before ‘row_pointer’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:275: error: implicit declaration of function ‘jpeg_std_error’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:276: error: implicit declaration of function ‘jpeg_create_compress’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:277: error: implicit declaration of function ‘ngx_http_video_thumbextractor_jpeg_memory_dest’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:282: error: ‘JCS_RGB’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:284: error: implicit declaration of function ‘jpeg_set_defaults’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:294: error: implicit declaration of function ‘jpeg_set_quality’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:299: error: implicit declaration of function ‘jpeg_simple_progression’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:302: error: implicit declaration of function ‘jpeg_start_compress’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:305: error: ‘row_pointer’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:306: error: implicit declaration of function ‘jpeg_write_scanlines’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:309: error: implicit declaration of function ‘jpeg_finish_compress’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:310: error: implicit declaration of function ‘jpeg_destroy_compress’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:270: error: unused variable ‘jerr’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:269: error: unused variable ‘cinfo’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: At top level: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:317: error: field ‘pub’ has incomplete type /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:326: error: expected ‘)’ before ‘cinfo’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:337: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ngx_http_video_thumbextractor_empty_output_buffer’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:355: error: expected ‘)’ before ‘cinfo’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:363: error: expected ‘)’ before ‘cinfo’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:382: error: expected ‘)’ before ‘*’ token /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:389: error: expected ‘)’ before ‘*’ token /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:395: error: expected declaration specifiers or ‘...’ before ‘AVFormatContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:395: error: expected declaration specifiers or ‘...’ before ‘AVCodecContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘setup_parameters’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:397: error: ‘pFormatCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:397: error: ‘AV_TIME_BASE’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: At top level: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:422: error: expected declaration specifiers or ‘...’ before ‘AVFormatContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:422: error: expected declaration specifiers or ‘...’ before ‘AVCodecContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:422: error: expected declaration specifiers or ‘...’ before ‘AVFilterGraph’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:422: error: expected declaration specifiers or ‘...’ before ‘AVFilterContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:422: error: expected declaration specifiers or ‘...’ before ‘AVFilterContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘setup_filters’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:424: error: ‘AVFilterGraph’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:424: error: ‘filter_graph’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:426: error: ‘AVFilterContext’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:426: error: ‘transpose_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:427: error: ‘transpose_cw_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:428: error: ‘scale_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:429: error: ‘crop_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:430: error: ‘tile_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:431: error: ‘format_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:443: error: ‘AVDictionaryEntry’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:443: error: ‘rotate’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:443: error: implicit declaration of function ‘av_dict_get’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:443: error: ‘pFormatCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:450: error: implicit declaration of function ‘display_aspect_ratio’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:450: error: ‘pCodecCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:451: error: implicit declaration of function ‘display_width’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:491: error: ‘fg’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:491: error: implicit declaration of function ‘avfilter_graph_alloc’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:496: error: ‘AVRational’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:496: error: expected ‘;’ before ‘time_base’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:500: error: ‘time_base’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:503: error: implicit declaration of function ‘avfilter_graph_create_filter’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:503: error: ‘buffersrc_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:503: error: implicit declaration of function ‘avfilter_get_by_name’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:547: error: ‘buffersink_ctx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:554: error: implicit declaration of function ‘avfilter_link’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:580: error: implicit declaration of function ‘avfilter_graph_config’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: At top level: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:589: error: expected ‘)’ before ‘*’ token /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:608: error: expected declaration specifiers or ‘...’ before ‘AVFormatContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:608: error: expected declaration specifiers or ‘...’ before ‘AVCodecContext’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:608: error: expected declaration specifiers or ‘...’ before ‘AVFrame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c: In function ‘get_frame’: /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:610: error: ‘AVPacket’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:610: error: expected ‘;’ before ‘packet’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:615: error: ‘pFormatCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:617: error: ‘float_t’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:617: error: expected ‘)’ before ‘pFormatCtx’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:621: error: implicit declaration of function ‘av_seek_frame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:621: error: ‘AVSEEK_FLAG_BACKWARD’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:628: error: implicit declaration of function ‘av_read_frame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:628: error: ‘packet’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:632: error: implicit declaration of function ‘avcodec_send_packet’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:632: error: ‘pCodecCtx’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:633: error: implicit declaration of function ‘avcodec_receive_frame’ /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:633: error: ‘pFrame’ undeclared (first use in this function) /tmp/nginx-video-thumbextractor-module/src/ngx_http_video_thumbextractor_module_utils.c:645: error: implicit declaration of function ‘av_packet_unref’ make[1]: *** [objs/addon/src/ngx_http_video_thumbextractor_module.o] Error 1 make[1]: Leaving directory/tmp/nginx-1.10.1' make: *** [build] Error 2 `

I have installed FFMPEG & libjpeg already. Here is result when I run ffmpeg -version

` ffmpeg version N-86909-g4158fba Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-18) configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree libavutil 55. 69.100 / 55. 69.100 libavcodec 57.102.100 / 57.102.100 libavformat 57. 76.100 / 57. 76.100 libavdevice 57. 7.100 / 57. 7.100 libavfilter 6. 95.100 / 6. 95.100 libswscale 4. 7.101 / 4. 7.101 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100

`

wandenberg commented 7 years ago

Hi. You have installed FFmpeg in a not default folder (--prefix=/root/ffmpeg_build). So you must set the same path in the compiler flags for Nginx. You can check how to do that on its documentation.

anhlt309 commented 7 years ago

I have same problem. So, how to set path param to ffmpeg_build when build nginx? Thank you!

wandenberg commented 7 years ago

Take a look here http://nginx.org/en/docs/configure.html. Look for --with-cc-opt. Would be something like --with-cc-opt="-I /root/ffmpeg_build/include"

anhlt309 commented 7 years ago

Thank you. I builed successful. And how to get thumb of video on path: /home/mypc/video.mp4

wandenberg commented 7 years ago

The easiest way is to configure the root folder to point to the desired folder, like

location ~ /thumbs(.*) {
        video_thumbextractor;
        video_thumbextractor_video_filename    $1;
        video_thumbextractor_video_second      $arg_second;
        video_thumbextractor_image_width       $arg_width;
        video_thumbextractor_image_height      $arg_height;
        root /home/mypc;
    }

I suggest you to not use a folder where there are other files than the videos you want to expose thumbs for security reasons.

You can find information like that on Nginx documentation.

anhlt309 commented 7 years ago

I follow your config but just get 400 Bad Request, with url: http://192.168.0.3:8080/thumbs/video.mp4?second=10

Where I was wrong?

wandenberg commented 7 years ago

Look at the error logs. Probably there is a message to help you. (maybe necessary change the log level to INFO or DEBUG)

zikoops commented 7 years ago

The old issue has been solved but i got a new issue. Please help me to solve this:

objs/addon/src/ngx_http_video_thumbextractor_module.o \ objs/ngx_modules.o \ -Wl,-rpath,/root/bin/ -Wl,-E -ldl -lpthread -lpthread -lcrypt -L/usr/local/lib -lluajit-5.1 -lm -lcrypto -ldl -lpthread -lrt -lavformat -lavcodec -lavutil -lavfilter -lswscale -lswresample -lpostproc -ljpeg -lpcre -lssl -lcrypto -ldl -lz \ -Wl,-E /usr/bin/ld: cannot find -lavformat collect2: ld returned 1 exit status make[1]: [objs/nginx] Error 1 make[1]: Leaving directory `/tmp/nginx-1.10.1' make: [build] Error 2

wandenberg commented 7 years ago

The reason is the same. Since you set a custom path for FFmpeg you must add --with-ld-opt="-L /root/ffmpeg_build/lib" to be possible for Nginx to find the libraries. And possibly you will need to export the LD_LIBRARY_PATH environment variable when trying to execute the Nginx

zikoops commented 7 years ago

Thanks for your quickly support! This is my nginx configure command:

./configure --with-ld-opt="-Wl,-rpath,/usr/local/lib/" --with-ld-opt="-L /root/ffmpeg_build/lib" --with-cc-opt="-I /root/ffmpeg_build/include" --with-http_flv_module --with-file-aio --with-threads --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_secure_link_module --with-stream --with-stream_ssl_module --add-module=/tmp/ngx_devel_kit-0.3.0 --add-module=/tmp/lua-nginx-module-0.10.9rc8 --add-module=/tmp/nginx-vod-module --add-module=/tmp/nginx-video-thumbextractor-module

I ran it and continue met some errors like this:

-L /root/ffmpeg_build/lib -Wl,-E -ldl -lpthread -lpthread -lcrypt -L/usr/local/lib -lluajit-5.1 -lm -lcrypto -ld -Wl,-E /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacdec.o): In functionfdk_aac_decode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:322: undefined reference to aacDecoder_Fill' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:328: undefined reference toaacDecoder_DecodeFrame' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacdec.o): In function get_stream_info': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:88: undefined reference toaacDecoder_GetStreamInfo' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacdec.o): In function fdk_aac_decode_flush': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:366: undefined reference toaacDecoder_SetParam' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacdec.o): In function fdk_aac_decode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:201: undefined reference toaacDecoder_Close' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacdec.o): In function fdk_aac_decode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:213: undefined reference toaacDecoder_Open' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:220: undefined reference to aacDecoder_ConfigRaw' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:227: undefined reference toaacDecoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:251: undefined reference to aacDecoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:260: undefined reference toaacDecoder_AncDataInit' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:269: undefined reference to aacDecoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:276: undefined reference toaacDecoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:283: undefined reference to aacDecoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:290: undefined reference toaacDecoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacdec.c:297: undefined reference to aacDecoder_SetParam' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacenc.o): In functionaac_encode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:97: undefined reference to aacEncClose' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacenc.o): In functionaac_encode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:357: undefined reference to aacEncEncode' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacenc.o): In functionaac_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:114: undefined reference to aacEncOpen' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:123: undefined reference toaacEncoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:130: undefined reference to aacEncoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:138: undefined reference toaacEncoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:172: undefined reference to aacEncoder_SetParam' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:179: undefined reference toaacEncoder_SetParam' /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacenc.o):/tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:197: more und /root/ffmpeg_build/lib/libavcodec.a(libfdk-aacenc.o): In function aac_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:276: undefined reference toaacEncEncode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libfdk-aacenc.c:282: undefined reference to aacEncInfo' /root/ffmpeg_build/lib/libavcodec.a(libmp3lame.o): In functionmp3lame_encode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:224: undefined reference to lame_encode_flush' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:200: undefined reference tolame_encode_buffer' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:203: undefined reference to lame_encode_buffer_int' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:216: undefined reference tolame_encode_buffer_float' /root/ffmpeg_build/lib/libavcodec.a(libmp3lame.o): In function mp3lame_encode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:87: undefined reference tolame_close' /root/ffmpeg_build/lib/libavcodec.a(libmp3lame.o): In function mp3lame_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:99: undefined reference tolame_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:103: undefined reference to lame_set_num_channels' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:104: undefined reference tolame_set_mode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:107: undefined reference to lame_set_in_samplerate' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:108: undefined reference tolame_set_out_samplerate' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:112: undefined reference to lame_set_quality' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:116: undefined reference tolame_set_VBR' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:117: undefined reference to lame_set_VBR_quality' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:121: undefined reference tolame_set_VBR' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:122: undefined reference to lame_set_VBR_mean_bitrate_kbps' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:124: undefined reference tolame_set_brate' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:130: undefined reference to lame_set_lowpassfreq' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:133: undefined reference tolame_set_bWriteVbrTag' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:136: undefined reference to lame_set_disable_reservoir' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:139: undefined reference tolame_init_params' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:145: undefined reference to lame_get_encoder_delay' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libmp3lame.c:148: undefined reference tolame_get_framesize' /root/ffmpeg_build/lib/libavcodec.a(libopusdec.o): In function libopus_flush': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:186: undefined reference toopus_multistream_decoder_ctl' /root/ffmpeg_build/lib/libavcodec.a(libopusdec.o): In function libopus_decode': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:151: undefined reference toopus_multistream_decode_float' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:147: undefined reference to opus_multistream_decode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:156: undefined reference toopus_strerror' /root/ffmpeg_build/lib/libavcodec.a(libopusdec.o): In function libopus_decode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:129: undefined reference toopus_multistream_decoder_destroy' /root/ffmpeg_build/lib/libavcodec.a(libopusdec.o): In function libopus_decode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:95: undefined reference toopus_multistream_decoder_create' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:99: undefined reference to opus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:105: undefined reference toopus_multistream_decoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusdec.c:107: undefined reference to opus_strerror' /root/ffmpeg_build/lib/libavcodec.a(libopusenc.o): In functionlibopus_encode': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:466: undefined reference to opus_multistream_encode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:462: undefined reference toopus_multistream_encode_float' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:471: undefined reference to opus_strerror' /root/ffmpeg_build/lib/libavcodec.a(libopusenc.o): In functionlibopus_encode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:509: undefined reference to opus_multistream_encoder_destroy' /root/ffmpeg_build/lib/libavcodec.a(libopusenc.o): In functionlibopus_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:327: undefined reference to opus_multistream_encoder_create' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:337: undefined reference toopus_multistream_surround_encoder_create /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:344: undefined reference to opus_strerror' /root/ffmpeg_build/lib/libavcodec.a(libopusenc.o): In functionlibopus_configure_encoder': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:118: undefined reference to opus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:120: undefined reference toopus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:125: undefined reference to opus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:128: undefined reference toopus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:131: undefined reference to opus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:133: undefined reference toopus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:136: undefined reference to opus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:139: undefined reference toopus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:142: undefined reference to opus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:145: undefined reference toopus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:150: undefined reference to opus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:153: undefined reference toopus_strerror' /root/ffmpeg_build/lib/libavcodec.a(libopusenc.o): In function libopus_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:389: undefined reference toopus_multistream_encoder_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:391: undefined reference to opus_strerror' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libopusenc.c:405: undefined reference toopus_multistream_encoder_destroy' /root/ffmpeg_build/lib/libavcodec.a(libvorbisenc.o): In function libvorbis_encode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:287: undefined reference tovorbis_analysis_buffer' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:294: undefined reference to vorbis_analysis_wrote' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:310: undefined reference tovorbis_analysis_blockout' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:311: undefined reference to vorbis_analysis' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:313: undefined reference tovorbis_bitrate_addblock' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:317: undefined reference to vorbis_bitrate_flushpacket' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:302: undefined reference tovorbis_analysis_wrote' /root/ffmpeg_build/lib/libavcodec.a(libvorbisenc.o): In function libvorbis_encode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:180: undefined reference tovorbis_analysis_wrote' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:182: undefined reference to vorbis_block_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:183: undefined reference tovorbis_dsp_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:184: undefined reference to vorbis_info_clear' /root/ffmpeg_build/lib/libavcodec.a(libvorbisenc.o): In functionlibvorbis_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:203: undefined reference to vorbis_info_init' /root/ffmpeg_build/lib/libavcodec.a(libvorbisenc.o): In functionlibvorbis_setup': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:98: undefined reference to vorbis_encode_setup_vbr' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:107: undefined reference tovorbis_encode_setup_managed' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:114: undefined reference to vorbis_encode_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:121: undefined reference tovorbis_encode_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:127: undefined reference to vorbis_encode_ctl' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:160: undefined reference tovorbis_encode_setup_init' /root/ffmpeg_build/lib/libavcodec.a(libvorbisenc.o): In function libvorbis_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:208: undefined reference tovorbis_analysis_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:214: undefined reference to vorbis_block_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:220: undefined reference tovorbis_comment_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:222: undefined reference to vorbis_comment_add_tag' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:224: undefined reference tovorbis_analysis_headerout' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisenc.c:257: undefined reference to vorbis_comment_clear' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functiondecode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:182: undefined reference to vpx_codec_decode' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functionvpx_decode': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:242: undefined reference to vpx_codec_get_frame' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functiondecode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:182: undefined reference to vpx_codec_decode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:183: undefined reference tovpx_codec_error' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:184: undefined reference to vpx_codec_error_detail' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functionvpx_decode': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:244: undefined reference to vpx_codec_get_frame' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functiondecode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:183: undefined reference to vpx_codec_error' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functionvpx_decode': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:222: undefined reference to vpx_codec_vp8_dx_algo' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:222: undefined reference tovpx_codec_vp9_dx_algo' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In function vpx_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:54: undefined reference tovpx_codec_version_str' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:55: undefined reference to vpx_codec_build_config' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:57: undefined reference tovpx_codec_dec_init_ver' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:60: undefined reference to vpx_codec_error' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functionvp9_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:323: undefined reference to vpx_codec_vp9_dx_algo' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functionvp8_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:304: undefined reference to vpx_codec_vp8_dx_algo' /root/ffmpeg_build/lib/libavcodec.a(libvpxdec.o): In functionvpx_free': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:295: undefined reference to vpx_codec_destroy' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxdec.c:297: undefined reference tovpx_codec_destroy' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In function vpx_encode': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1037: undefined reference tovpx_codec_encode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1045: undefined reference to vpx_codec_encode' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In functionqueue_frames': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:904: undefined reference to vpx_codec_get_cx_data' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:906: undefined reference tovpx_codec_get_cx_data' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In function log_encoder_error': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:152: undefined reference tovpx_codec_error' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:153: undefined reference to vpx_codec_error_detail' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In functioncodecctl_int': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:262: undefined reference to vpx_codec_control_' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In functionvpx_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:465: undefined reference to vpx_codec_get_caps' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:468: undefined reference tovpx_codec_version_str' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:469: undefined reference to vpx_codec_build_config' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:474: undefined reference tovpx_codec_enc_config_default' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:475: undefined reference to vpx_codec_err_to_string' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:644: undefined reference tovpx_codec_enc_init_ver' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:652: undefined reference to vpx_codec_enc_init_ver' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:737: undefined reference tovpx_img_wrap' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:745: undefined reference to vpx_img_wrap' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In functionvp9_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1209: undefined reference to vpx_codec_vp9_cx' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In functioncodecctl_intp': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:284: undefined reference to vpx_codec_control_' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In functionvpx_free': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:308: undefined reference to vpx_codec_destroy' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:310: undefined reference tovpx_codec_destroy' /root/ffmpeg_build/lib/libavcodec.a(libvpxenc.o): In function vp8_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpxenc.c:1180: undefined reference tovpx_codec_vp8_cx' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In function X264_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:280: undefined reference tox264_picture_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:282: undefined reference to x264_bit_depth' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In functionreconfig_encoder': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:266: undefined reference to x264_encoder_reconfig' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In functionX264_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:342: undefined reference to x264_encoder_delayed_frames' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:336: undefined reference tox264_encoder_encode' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:336: undefined reference to x264_encoder_encode' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In functionreconfig_encoder': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:181: undefined reference to x264_encoder_reconfig' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:186: undefined reference tox264_encoder_reconfig' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:193: undefined reference to x264_encoder_reconfig' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:213: undefined reference tox264_encoder_reconfig' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:219: undefined reference to x264_encoder_reconfig' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In functionX264_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:342: undefined reference to x264_encoder_delayed_frames' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In functionreconfig_encoder': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:206: undefined reference to x264_encoder_reconfig' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:199: undefined reference tox264_encoder_reconfig' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In function X264_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:336: undefined reference tox264_encoder_encode' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In function X264_init_static': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:892: undefined reference tox264_bit_depth' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In function X264_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:392: undefined reference tox264_encoder_close' /root/ffmpeg_build/lib/libavcodec.a(libx264.o): In function X264_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:467: undefined reference tox264_param_default' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:472: undefined reference to x264_param_default_preset' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:494: undefined reference tox264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:524: undefined reference to x264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:585: undefined reference tox264_levels' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:583: undefined reference to x264_levels' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:623: undefined reference tox264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:624: undefined reference to x264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:625: undefined reference tox264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:626: undefined reference to x264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:674: undefined reference tox264_param_apply_fastfirstpass' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:730: undefined reference to x264_param_apply_profile' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:782: undefined reference tox264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:784: undefined reference to x264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:796: undefined reference tox264_param_parse' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:814: undefined reference to x264_encoder_open_152' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx264.c:823: undefined reference tox264_encoder_headers' /root/ffmpeg_build/lib/libavcodec.a(libx265.o): In function libx265_encode_init_csp': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:380: undefined reference tox265_api_get_131' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:382: undefined reference to x265_api_get_131' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:384: undefined reference tox265_api_get_131' /root/ffmpeg_build/lib/libavcodec.a(libx265.o): In function libx265_encode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:82: undefined reference tox265_api_get_131' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libx265.c:84: undefined reference to x265_api_get_131' /root/ffmpeg_build/lib/libavcodec.a(libvpx.o): In functionff_vp9_init_static': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:74: undefined reference to vpx_codec_version' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:75: undefined reference tovpx_codec_version' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:75: undefined reference to vpx_codec_version' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:79: undefined reference tovpx_codec_version' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:80: undefined reference to vpx_codec_version' /root/ffmpeg_build/lib/libavcodec.a(libvpx.o):/tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:80: more undefined referenc /root/ffmpeg_build/lib/libavcodec.a(libvpx.o): In functionff_vp9_init_static': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:82: undefined reference to vpx_codec_vp9_cx' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvpx.c:82: undefined reference tovpx_codec_get_caps' /root/ffmpeg_build/lib/libavfilter.a(avf_showcqt.o): In function common_uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:147: undefined reference toav_fft_end' /root/ffmpeg_build/lib/libavfilter.a(avf_showcqt.o): In function plot_cqt': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:1151: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:1152: undefined reference to av_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(avf_showcqt.o): In functionrender_freetype': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:522: undefined reference to FT_Init_FreeType' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:525: undefined reference toFT_New_Face' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:528: undefined reference to FT_Set_Char_Size' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:531: undefined reference toFT_Load_Char' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:534: undefined reference to FT_Set_Char_Size' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:543: undefined reference toFT_Load_Char' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:573: undefined reference to FT_Done_Face' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:574: undefined reference toFT_Done_FreeType' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:579: undefined reference to FT_Done_Face' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:580: undefined reference toFT_Done_FreeType' /root/ffmpeg_build/lib/libavfilter.a(avf_showcqt.o): In function config_output': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showcqt.c:1383: undefined reference toav_fft_init' /root/ffmpeg_build/lib/libavfilter.a(avf_showfreqs.o): In function config_output': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showfreqs.c:184: undefined reference toav_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showfreqs.c:185: undefined reference to av_fft_init' /root/ffmpeg_build/lib/libavfilter.a(avf_showfreqs.o): In functionplot_freqs': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showfreqs.c:402: undefined reference to av_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showfreqs.c:403: undefined reference toav_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(avf_showfreqs.o): In function uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showfreqs.c:485: undefined reference toav_fft_end' /root/ffmpeg_build/lib/libavfilter.a(avf_showspectrum.o): In function run_channel_fft': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showspectrum.c:482: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showspectrum.c:483: undefined reference to av_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(avf_showspectrum.o): In functionconfig_output': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showspectrum.c:348: undefined reference to av_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showspectrum.c:355: undefined reference toav_fft_init' /root/ffmpeg_build/lib/libavfilter.a(avf_showspectrum.o): In function uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/avf_showspectrum.c:235: undefined reference toav_fft_end' /root/ffmpeg_build/lib/libavfilter.a(f_select.o): In function config_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/f_select.c:242: undefined reference toav_pixelutils_get_sad_fn' /root/ffmpeg_build/lib/libavfilter.a(f_sendcmd.o): In function init': /tmp/ffmpeg_sources/ffmpeg/libavfilter/f_sendcmd.c:390: undefined reference toav_file_map' /tmp/ffmpeg_sources/ffmpeg/libavfilter/f_sendcmd.c:398: undefined reference to av_file_unmap' /tmp/ffmpeg_sources/ffmpeg/libavfilter/f_sendcmd.c:403: undefined reference toav_file_unmap' /root/ffmpeg_build/lib/libavfilter.a(vaf_spectrumsynth.o): In function config_output': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vaf_spectrumsynth.c:189: undefined reference toav_fft_init' /root/ffmpeg_build/lib/libavfilter.a(vaf_spectrumsynth.o): In function synth_window': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vaf_spectrumsynth.c:360: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vaf_spectrumsynth.c:361: undefined reference to av_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(vaf_spectrumsynth.o): In functionuninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vaf_spectrumsynth.c:499: undefined reference to av_fft_end' /root/ffmpeg_build/lib/libavfilter.a(vf_curves.o): In functionparse_psfile': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_curves.c:357: undefined reference to av_file_map' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_curves.c:398: undefined reference toav_file_unmap' /root/ffmpeg_build/lib/libavfilter.a(vf_deshake.o): In function init': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_deshake.c:347: undefined reference toav_pixelutils_get_sad_fn' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function load_textfile': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:573: undefined reference toav_file_map' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:587: undefined reference to av_file_unmap' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:581: undefined reference toav_file_unmap' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function load_glyph': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:319: undefined reference toFT_Load_Char' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:330: undefined reference to FT_Get_Glyph' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:344: undefined reference toFT_Glyph_To_Bitmap' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:336: undefined reference to FT_Glyph_StrokeBorder' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:337: undefined reference toFT_Glyph_To_Bitmap' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:356: undefined reference to FT_Glyph_Get_CBox' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In functionglyph_enu_free': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:790: undefined reference to FT_Done_Glyph' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:791: undefined reference toFT_Done_Glyph' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function draw_text': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:1367: undefined reference toFT_Get_Kerning' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function set_fontsize': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:383: undefined reference toFT_Set_Pixel_Sizes' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:814: undefined reference toFT_Done_Face' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:815: undefined reference to FT_Stroker_Done' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:816: undefined reference toFT_Done_FreeType' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function init': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:738: undefined reference toFT_Init_FreeType' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function load_font_file': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:453: undefined reference toFT_New_Face' /root/ffmpeg_build/lib/libavfilter.a(vf_drawtext.o): In function init': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:751: undefined reference toFT_Stroker_New' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_drawtext.c:755: undefined reference to FT_Stroker_Set' /root/ffmpeg_build/lib/libavfilter.a(vf_fftfilt.o): In functionrdft_horizontal': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:99: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:109: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:111: undefined reference to av_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(vf_fftfilt.o): In functionrdft_vertical': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:118: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:128: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:130: undefined reference to av_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(vf_fftfilt.o): In functionirdft_vertical': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:136: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:138: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:145: undefined reference to av_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(vf_fftfilt.o): In functionirdft_horizontal': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:152: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:154: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_fftfilt.c:163: undefined reference to av_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(vf_framerate.o): In functionconfig_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_framerate.c:572: undefined reference to av_pixelutils_get_sad_fn' /root/ffmpeg_build/lib/libavfilter.a(vf_minterpolate.o): In functionconfig_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_minterpolate.c:373: undefined reference to av_pixelutils_get_sad_fn' /root/ffmpeg_build/lib/libavfilter.a(vf_mpdecimate.o): In functioninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_mpdecimate.c:148: undefined reference to av_pixelutils_get_sad_fn' /root/ffmpeg_build/lib/libavfilter.a(vf_spp.o): In functionconfig_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_spp.c:337: undefined reference to avcodec_dct_init' /root/ffmpeg_build/lib/libavfilter.a(vf_spp.o): In functionchild_class_next': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_spp.c:49: undefined reference to avcodec_dct_get_class' /root/ffmpeg_build/lib/libavfilter.a(vf_spp.o): In functioninit_dict': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_spp.c:463: undefined reference to avcodec_dct_alloc' /root/ffmpeg_build/lib/libavfilter.a(vsrc_cellauto.o): In functionuninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vsrc_cellauto.c:213: undefined reference to av_file_unmap' /root/ffmpeg_build/lib/libavfilter.a(vsrc_cellauto.o): In functioninit_pattern_from_file': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vsrc_cellauto.c:148: undefined reference to av_file_map' /root/ffmpeg_build/lib/libavfilter.a(vsrc_life.o): In functionuninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vsrc_life.c:274: undefined reference to av_file_unmap' /root/ffmpeg_build/lib/libavfilter.a(vsrc_life.o): In functioninit_pattern_from_file': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vsrc_life.c:169: undefined reference to av_file_map' /root/ffmpeg_build/lib/libavfilter.a(af_afftfilt.o): In functionconfig_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:101: undefined reference to av_fft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:102: undefined reference toav_fft_init' /root/ffmpeg_build/lib/libavfilter.a(af_afftfilt.o): In function filter_frame': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:241: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:242: undefined reference to av_fft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:261: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:262: undefined reference to av_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_afftfilt.o): In functionuninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:357: undefined reference to av_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afftfilt.c:358: undefined reference toav_fft_end' /root/ffmpeg_build/lib/libavfilter.a(af_afir.o): In function fir_channel': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:74: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:93: undefined reference to av_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_afir.o): In functionconvert_coeffs': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:204: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:205: undefined reference toav_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:241: undefined reference to av_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_afir.o): In functionuninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:450: undefined reference to av_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_afir.c:457: undefined reference toav_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(af_atempo.o): In function yae_xcorr_via_rdft': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:631: undefined reference toav_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_atempo.o): In function yae_flush': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:932: undefined reference toav_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_atempo.o): In function yae_apply': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:841: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:873: undefined reference to av_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_atempo.o): In functionyae_release_buffers': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:229: undefined reference to av_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:232: undefined reference toav_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(af_atempo.o): In function yae_reset': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:286: undefined reference toav_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:289: undefined reference to av_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:292: undefined reference toav_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_atempo.c:298: undefined reference to av_rdft_init' /root/ffmpeg_build/lib/libavfilter.a(af_firequalizer.o): In functioncommon_uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:145: undefined reference to av_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:146: undefined reference toav_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:147: undefined reference to av_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:148: undefined reference toav_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:149: undefined reference to av_fft_end' /root/ffmpeg_build/lib/libavfilter.a(af_firequalizer.o): In functionfast_convolute': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:212: undefined reference to av_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:221: undefined reference toav_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_firequalizer.o): In function generate_kernel': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:559: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:607: undefined reference to av_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_firequalizer.o): In functiondump_fir': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:330: undefined reference to av_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_firequalizer.o): In functionfast_convolute2': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:254: undefined reference to av_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:255: undefined reference toav_fft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:275: undefined reference to av_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:276: undefined reference toav_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_firequalizer.o): In function config_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:667: undefined reference toav_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:667: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:684: undefined reference toav_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:688: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_firequalizer.c:670: undefined reference toav_fft_init' /root/ffmpeg_build/lib/libavfilter.a(af_headphone.o): In function headphone_fast_convolute': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:285: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:286: undefined reference to av_fft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:296: undefined reference toav_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:297: undefined reference to av_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_headphone.o): In functionconvert_coeffs': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:414: undefined reference to av_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:415: undefined reference toav_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:416: undefined reference to av_fft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:417: undefined reference toav_fft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:418: undefined reference to av_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:419: undefined reference toav_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:420: undefined reference to av_fft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:421: undefined reference toav_fft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:526: undefined reference to av_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:527: undefined reference toav_fft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:529: undefined reference to av_fft_permute' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:530: undefined reference toav_fft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_headphone.o): In function uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:753: undefined reference toav_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:754: undefined reference to av_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:755: undefined reference toav_fft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_headphone.c:756: undefined reference to av_fft_end' /root/ffmpeg_build/lib/libavfilter.a(af_superequalizer.o): In functionfilter_frame': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:211: undefined reference to av_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:225: undefined reference toav_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_superequalizer.o): In function make_fir': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:178: undefined reference toav_rdft_calc' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:178: undefined reference to av_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_superequalizer.o): In functionuninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:309: undefined reference to av_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(af_superequalizer.o): In functionequ_init': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:138: undefined reference to av_rdft_init' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:139: undefined reference toav_rdft_init' /root/ffmpeg_build/lib/libavfilter.a(af_superequalizer.o): In function uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_superequalizer.c:310: undefined reference toav_rdft_end' /root/ffmpeg_build/lib/libavfilter.a(af_surround.o): In function config_output': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_surround.c:177: undefined reference toav_rdft_init' /root/ffmpeg_build/lib/libavfilter.a(af_surround.o): In function config_input': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_surround.c:146: undefined reference toav_rdft_init' /root/ffmpeg_build/lib/libavfilter.a(af_surround.o): In function fft_channel': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_surround.c:1082: undefined reference toav_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_surround.o): In function ifft_channel': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_surround.c:1095: undefined reference toav_rdft_calc' /root/ffmpeg_build/lib/libavfilter.a(af_surround.o): In function uninit': /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_surround.c:1171: undefined reference toav_rdft_end' /tmp/ffmpeg_sources/ffmpeg/libavfilter/af_surround.c:1174: undefined reference to av_rdft_end' /root/ffmpeg_build/lib/libavcodec.a(libvorbisdec.o): In functionoggvorbis_decode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:191: undefined reference to vorbis_block_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:192: undefined reference tovorbis_dsp_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:193: undefined reference to vorbis_info_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:194: undefined reference tovorbis_comment_clear' /root/ffmpeg_build/lib/libavcodec.a(libvorbisdec.o): In function oggvorbis_decode_frame': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:169: undefined reference tovorbis_synthesis' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:175: undefined reference to vorbis_synthesis_pcmout' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:179: undefined reference tovorbis_synthesis_read' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:170: undefined reference to vorbis_synthesis_blockin' /root/ffmpeg_build/lib/libavcodec.a(libvorbisdec.o): In functionoggvorbis_decode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:48: undefined reference to vorbis_info_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:49: undefined reference tovorbis_comment_init' /root/ffmpeg_build/lib/libavcodec.a(libvorbisdec.o): In function oggvorbis_decode_close': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:191: undefined reference tovorbis_block_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:192: undefined reference to vorbis_dsp_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:193: undefined reference tovorbis_info_clear' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:194: undefined reference to vorbis_comment_clear' /root/ffmpeg_build/lib/libavcodec.a(libvorbisdec.o): In functionoggvorbis_decode_init': /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:97: undefined reference to vorbis_synthesis_headerin' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:97: undefined reference tovorbis_synthesis_headerin' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:97: undefined reference to vorbis_synthesis_headerin' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:109: undefined reference tovorbis_synthesis_init' /tmp/ffmpeg_sources/ffmpeg/libavcodec/libvorbisdec.c:110: undefined reference to vorbis_block_init' /root/ffmpeg_build/lib/libavfilter.a(vf_selectivecolor.o): In functionparse_psfile': /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_selectivecolor.c:193: undefined reference to av_file_map' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_selectivecolor.c:234: undefined reference toav_file_unmap' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_selectivecolor.c:234: undefined reference to av_file_unmap' /tmp/ffmpeg_sources/ffmpeg/libavfilter/vf_selectivecolor.c:234: undefined reference toav_file_unmap' collect2: ld returned 1 exit status make[1]: [objs/nginx] Error 1 make[1]: Leaving directory `/tmp/nginx-1.10.1' make: [build] Error 2 `

wandenberg commented 7 years ago

Seems to be a problem in the way you compiled your FFmpeg. Nothing related to the module or Nginx. Try to compile the FFmpeg and its dependencies using the shared flag. Or install an FFmpeg package already built for your OS.

zikoops commented 7 years ago

Normally, where is FFmpeg located on CentOs? Thanks @wandenberg

zikoops commented 7 years ago

I meant, FFmpeg should be installed in what directory to easier compile with nginx?

wandenberg commented 7 years ago

Don't know the CentOs in deep. Common directories are /usr/[lib|include] and /usr/local/[lib|include]. But as I said before, the problem is not only the location but the way you are building the libraries. Try to build them using the enabled-shared option or use a package that someone did for CentOs.

astroshim commented 6 years ago

@zikoops Hello, Did you solve this issue? please tell me how did you solve this. 😄

wandenberg commented 6 years ago

Hi @astroshim what issues are you having to build the module? Which OS are you using? If possible use a Docker or Vagrant to be easier to share and reproduce the issue.

kennyMao commented 5 years ago

Hello there,

I have got some errors when trying to install this module.

error: objs/src/http/modules/ngx_http_upstream_least_conn_module.o \ objs/src/http/modules/ngx_http_upstream_keepalive_module.o \ objs/src/http/modules/ngx_http_upstream_zone_module.o \ objs/addon/src/ngx_http_video_thumbextractor_module.o \ objs/ngx_modules.o \ -L /app/run/app/ffmpeg/lib -ldl -lpthread -lcrypt -lavformat -lavcodec -lavutil -lavfilter -lswscale -lswresample -lpostproc -ljpeg -lpcre -lz \ -Wl,-E /usr/bin/ld: cannot find -lpostproc collect2: error: ld returned 1 exit status make[1]: [objs/nginx] Error 1 make[1]: Leaving directory `/app/soft-package/nginx-1.14.0' make: [build] Error 2

command:

./configure --prefix=/app/run/app/nginxserver --conf-path=/app/run/app/nginxserver/conf/nginx.conf --with-cc-opt="-I /etc/ImageMagick" --add-module=/app/run/app/nginxModule/nginx-video-thumbextractor-module-master --with-cc-opt="-I /app/run/app/ffmpeg/include" --with-ld-opt="-L /app/run/app/ffmpeg/lib"

nginx config: nginx version: nginx/1.14.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) configure arguments: --prefix=/app/run/app/nginxserver

ffmpeg config: ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-36) configuration: --prefix=/app/run/app/ffmpeg --disable-ffserver --disable-ffplay --enable-shared libavutil 55. 34.101 / 55. 34.101 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.101 / 57. 56.101 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100

wandenberg commented 5 years ago

Seems that you FFMpeg installation is not providing the required library postproc. Can you check it? I can try to help more if you inform which OS you are using. Also if possible try to do it using a Docker image, then is easier to "share" the server.