flavioribeiro/nginx-audio-track-for-hls-module

Compilation with NGINX Audio Track HLS module fails

Closed this issue · 8 comments

While trying to compile with the RTMP and HLS Module for NGINX I'm getting errors that I can't find how to resolve. I'm trying to compile my NGINX from source on Debian 8, at first I thought it was because the precompiled Ffmpeg version from Debian-Media repo was outdated, so I also compiled it from source, but alas no progress.

Configure parameters (trying to keep it close to Debian precompiled version config parameters):

./configure
 --prefix=/etc/nginx
 --sbin-path=/usr/sbin/nginx
 --modules-path=/usr/lib/nginx/modules
 --conf-path=/etc/nginx/nginx.conf
 --error-log-path=/var/log/nginx/error.log
 --http-log-path=/var/log/nginx/access.log
 --pid-path=/var/run/nginx.pid
 --lock-path=/var/run/nginx.lock
 --http-client-body-temp-path=/var/cache/nginx/client_temp
 --http-proxy-temp-path=/var/cache/nginx/proxy_temp
 --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
 --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
 --http-scgi-temp-path=/var/cache/nginx/scgi_temp
 --user=nginx
 --group=nginx
 --with-openssl=/home/src/openssl
 --with-select_module
 --with-poll_module
 --with-threads
 --with-file-aio
 --with-http_ssl_module
 --with-http_v2_module
 --with-http_realip_module
 --with-http_addition_module
 --with-http_xslt_module=dynamic
 --with-http_image_filter_module=dynamic
 --with-http_geoip_module=dynamic
 --with-http_sub_module
 --with-http_dav_module
 --with-http_flv_module
 --with-http_mp4_module
 --with-http_gunzip_module
 --with-http_gzip_static_module
 --with-http_auth_request_module
 --with-http_random_index_module
 --with-http_secure_link_module
 --with-http_degradation_module
 --with-http_slice_module
 --with-http_stub_status_module
 --with-http_perl_module=dynamic
 --with-mail=dynamic
 --with-stream=dynamic
 --with-google_perftools_module
 --with-pcre
 --with-debug
 --add-module=/home/src/nginx-rtmp-module-master
 --add-module=/home/src/ngx_devel_kit-master
 --add-module=/home/src/nginx-audio-track-for-hls-module-master
 --add-module=/home/src/lua-nginx-module-master
 --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2'
 --with-ld-opt='-Wl,-z,relro -Wl,--as-needed'

Error snippet that I'm receiving during compilation:

cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -DNDK_SET_VAR  -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/http/modules/perl -I /home/src/nginx-rtmp-module-master -I /home/src/ngx_devel_kit-master/objs -I objs/addon/ndk -I /home/src/lua-nginx-module-master/src/api -I /home/src/openssl/.openssl/include -I /usr/include/libxml2 -I objs -I src/http -I src/http/modules -I src/http/v2 -I /home/src/ngx_devel_kit-master/src -I /home/src/ngx_devel_kit-master/src -I /home/src/ngx_devel_kit-master/objs -I objs/addon/ndk -I /usr/local/include/luajit-2.0 -I src/mail -I src/stream \
        -o objs/addon/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.o \
        /home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c
/home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c: In function ‘ngx_http_aac_extract_audio’:
/home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c:210:5: error: ‘codec’ is deprecated (declared at /usr/include/libavformat/avformat.h:880) [-Werror=deprecated-declarations]
     avcodec_copy_context(output_audio_stream->codec, input_audio_stream->codec);
     ^
/home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c:210:5: error: ‘codec’ is deprecated (declared at /usr/include/libavformat/avformat.h:880) [-Werror=deprecated-declarations]
/home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c:223:13: error: ‘av_free_packet’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4397) [-Werror=deprecated-declarations]
             av_free_packet(&new_packet);
             ^
/home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c:225:9: error: ‘av_free_packet’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4397) [-Werror=deprecated-declarations]
         av_free_packet(&packet);
         ^
/home/src/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.c:211:5: error: ignoring return value of ‘avformat_write_header’, declared with attribute warn_unused_result [-Werror=unused-result]
     avformat_write_header(output_format_context, NULL);
     ^
cc1: all warnings being treated as errors
objs/Makefile:1902: recipe for target 'objs/addon/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.o' failed
make[1]: *** [objs/addon/nginx-audio-track-for-hls-module-master/ngx_http_aac_module.o] Error 1
make[1]: Leaving directory '/home/src/nginx-1.10.0'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2

Could this be because I'm simply missing AAC codec or perhaps I simply need to specify ffmpeg PATH for the module to successfully compile?

Seems to be related to this, any updates?

#21 Can't build nginx with --add-module=nginx-audio-track-for-hls-module

I have the same issue...how can I fix it?

weird, I'll take a look at it today

Thanks in advance!! I will wait your response.

Any thoughts about this issue?

hey @juanm4 and @alexgrusu -- unfortunately I didn't have the chance to look into this as the module is not in active development anymore. I highly suspect we'll need to patch the code with the latest ffmpeg/libav functions (like this wandenberg/nginx-video-thumbextractor-module@42c43b2). The other way would be to use the supported versions for the current implementation as stated here https://github.com/flavioribeiro/nginx-audio-track-for-hls-module#requirements

hello @flavioribeiro, this is what I'm trying now but I encountered a few issues.
I already described everything here:
https://stackoverflow.com/questions/66893908/nginx-audio-track-for-hls-module-installation