git: 30645c99e2b0 - main - www/nginx-module-vod: Add New Port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 16 Sep 2026 05:59:55 UTC
The branch main has been updated by joneum:
URL: https://cgit.FreeBSD.org/ports/commit/?id=30645c99e2b0162aa14d104cfd3f0254faae3ad9
commit 30645c99e2b0162aa14d104cfd3f0254faae3ad9
Author: Jochen Neumeister <joneum@FreeBSD.org>
AuthorDate: 2026-09-16 05:59:01 +0000
Commit: Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-09-16 05:59:45 +0000
www/nginx-module-vod: Add New Port
The vod module repackages MP4 files on the fly, so that a single set of
files on disk can be served as HLS, DASH, MSS or HDS without transcoding.
This port installs the module sources only, the module itself is built by
the nginx ports.
Sponsored by: Netzkommune GmbH
---
www/Makefile | 1 +
www/nginx-module-vod/Makefile | 36 ++++++
www/nginx-module-vod/distinfo | 3 +
www/nginx-module-vod/files/pkg-message.in | 15 +++
www/nginx-module-vod/pkg-descr | 12 ++
www/nginx-module-vod/pkg-plist | 201 ++++++++++++++++++++++++++++++
6 files changed, 268 insertions(+)
diff --git a/www/Makefile b/www/Makefile
index 8a371dc32234..20c3a089f639 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -534,6 +534,7 @@
SUBDIR += nginx-module-lua-stream
SUBDIR += nginx-module-ndk
SUBDIR += nginx-module-njs
+ SUBDIR += nginx-module-vod
SUBDIR += nginx-naxsi
SUBDIR += nginx-prometheus-exporter
SUBDIR += nginx-ultimate-bad-bot-blocker
diff --git a/www/nginx-module-vod/Makefile b/www/nginx-module-vod/Makefile
new file mode 100644
index 000000000000..2126141dcf18
--- /dev/null
+++ b/www/nginx-module-vod/Makefile
@@ -0,0 +1,36 @@
+PORTNAME= nginx-module-vod
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.9.2
+CATEGORIES= www
+
+MAINTAINER= joneum@FreeBSD.org
+COMMENT= Sources of the vod module for the NGINX ports
+WWW= https://github.com/dio-az/nginx-vod-module
+
+LICENSE= AGPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USE_GITHUB= yes
+GH_ACCOUNT= dio-az
+GH_PROJECT= nginx-vod-module
+
+NO_ARCH= yes
+NO_BUILD= yes
+
+SUB_FILES= pkg-message
+
+MODULESDIR= ${PREFIX}/share/nginx/modules/${PORTNAME}
+
+_MODSRC= *.c *.h vod LICENSE
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/usr/include/libxml2|${LOCALBASE}/include/libxml2|' \
+ ${WRKSRC}/config
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${MODULESDIR}
+ ${INSTALL_DATA} ${WRKSRC}/config ${STAGEDIR}${MODULESDIR}
+ @cd ${WRKSRC} && \
+ ${COPYTREE_SHARE} "${_MODSRC}" ${STAGEDIR}${MODULESDIR}
+
+.include <bsd.port.mk>
diff --git a/www/nginx-module-vod/distinfo b/www/nginx-module-vod/distinfo
new file mode 100644
index 000000000000..6aebf3c8a8dd
--- /dev/null
+++ b/www/nginx-module-vod/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1789533173
+SHA256 (dio-az-nginx-vod-module-v1.9.2_GH0.tar.gz) = ef639266bf68387f549590fd3692c3749682d7581a9236a30fd8e6a4f427bb89
+SIZE (dio-az-nginx-vod-module-v1.9.2_GH0.tar.gz) = 462889
diff --git a/www/nginx-module-vod/files/pkg-message.in b/www/nginx-module-vod/files/pkg-message.in
new file mode 100644
index 000000000000..c89f8c131d01
--- /dev/null
+++ b/www/nginx-module-vod/files/pkg-message.in
@@ -0,0 +1,15 @@
+[
+{ type: install
+ message: <<EOM
+This package contains the sources of the vod module only. It does not
+install a loadable module, and installing it alongside nginx does not
+add repackaging support to a running server.
+
+The module itself is built by the nginx ports. To use it, build
+www/nginx, www/nginx-devel or www/freenginx with the VOD option enabled.
+Those ports pick the sources up from
+%%PREFIX%%/share/nginx/modules/nginx-module-vod and produce
+ngx_http_vod_module.so.
+EOM
+}
+]
diff --git a/www/nginx-module-vod/pkg-descr b/www/nginx-module-vod/pkg-descr
new file mode 100644
index 000000000000..d59c4a02803c
--- /dev/null
+++ b/www/nginx-module-vod/pkg-descr
@@ -0,0 +1,12 @@
+The vod module repackages MP4 files on the fly, so that a single set of
+files on disk can be served as HLS, DASH, MSS or HDS without transcoding.
+
+Use cases:
+- Serving one MP4 source to players that expect different streaming
+ protocols
+- Clipping, rate filtering and joining of media on request
+- Encryption for AES-128, SAMPLE-AES and common DRM systems
+- Generating thumbnails and extracting subtitles from the source files
+
+This port only installs the module sources. The module itself is built
+by the nginx ports when their VOD option is enabled.
diff --git a/www/nginx-module-vod/pkg-plist b/www/nginx-module-vod/pkg-plist
new file mode 100644
index 000000000000..d4097f2a68d5
--- /dev/null
+++ b/www/nginx-module-vod/pkg-plist
@@ -0,0 +1,201 @@
+share/nginx/modules/nginx-module-vod/LICENSE
+share/nginx/modules/nginx-module-vod/config
+share/nginx/modules/nginx-module-vod/ngx_async_open_file_cache.c
+share/nginx/modules/nginx-module-vod/ngx_async_open_file_cache.h
+share/nginx/modules/nginx-module-vod/ngx_buffer_cache.c
+share/nginx/modules/nginx-module-vod/ngx_buffer_cache.h
+share/nginx/modules/nginx-module-vod/ngx_buffer_cache_internal.h
+share/nginx/modules/nginx-module-vod/ngx_child_http_request.c
+share/nginx/modules/nginx-module-vod/ngx_child_http_request.h
+share/nginx/modules/nginx-module-vod/ngx_file_reader.c
+share/nginx/modules/nginx-module-vod/ngx_file_reader.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_conf.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_conf.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_dash.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_dash.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_dash_commands.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_dash_conf.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_hls.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_hls.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_hls_commands.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_hls_conf.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_module.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_module.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_request_parse.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_request_parse.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_status.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_status.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_submodule.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_submodule.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_thumb.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_thumb.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_thumb_commands.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_thumb_conf.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_utils.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_utils.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_volume_map.c
+share/nginx/modules/nginx-module-vod/ngx_http_vod_volume_map.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_volume_map_commands.h
+share/nginx/modules/nginx-module-vod/ngx_http_vod_volume_map_conf.h
+share/nginx/modules/nginx-module-vod/ngx_perf_counters.c
+share/nginx/modules/nginx-module-vod/ngx_perf_counters.h
+share/nginx/modules/nginx-module-vod/ngx_perf_counters_x.h
+share/nginx/modules/nginx-module-vod/vod/aes_defs.h
+share/nginx/modules/nginx-module-vod/vod/avc_defs.h
+share/nginx/modules/nginx-module-vod/vod/avc_hevc_parser.c
+share/nginx/modules/nginx-module-vod/vod/avc_hevc_parser.h
+share/nginx/modules/nginx-module-vod/vod/avc_parser.c
+share/nginx/modules/nginx-module-vod/vod/avc_parser.h
+share/nginx/modules/nginx-module-vod/vod/bit_read_stream.h
+share/nginx/modules/nginx-module-vod/vod/buffer_pool.c
+share/nginx/modules/nginx-module-vod/vod/buffer_pool.h
+share/nginx/modules/nginx-module-vod/vod/cli/vod_array.c
+share/nginx/modules/nginx-module-vod/vod/cli/vod_array.h
+share/nginx/modules/nginx-module-vod/vod/cli/vod_cli_main.c
+share/nginx/modules/nginx-module-vod/vod/codec_config.c
+share/nginx/modules/nginx-module-vod/vod/codec_config.h
+share/nginx/modules/nginx-module-vod/vod/common.c
+share/nginx/modules/nginx-module-vod/vod/common.h
+share/nginx/modules/nginx-module-vod/vod/dash/dash_packager.c
+share/nginx/modules/nginx-module-vod/vod/dash/dash_packager.h
+share/nginx/modules/nginx-module-vod/vod/dash/edash_packager.c
+share/nginx/modules/nginx-module-vod/vod/dash/edash_packager.h
+share/nginx/modules/nginx-module-vod/vod/dynamic_buffer.c
+share/nginx/modules/nginx-module-vod/vod/dynamic_buffer.h
+share/nginx/modules/nginx-module-vod/vod/filters/audio_decoder.c
+share/nginx/modules/nginx-module-vod/vod/filters/audio_decoder.h
+share/nginx/modules/nginx-module-vod/vod/filters/audio_encoder.c
+share/nginx/modules/nginx-module-vod/vod/filters/audio_encoder.h
+share/nginx/modules/nginx-module-vod/vod/filters/audio_filter.c
+share/nginx/modules/nginx-module-vod/vod/filters/audio_filter.h
+share/nginx/modules/nginx-module-vod/vod/filters/concat_clip.c
+share/nginx/modules/nginx-module-vod/vod/filters/concat_clip.h
+share/nginx/modules/nginx-module-vod/vod/filters/dynamic_clip.c
+share/nginx/modules/nginx-module-vod/vod/filters/dynamic_clip.h
+share/nginx/modules/nginx-module-vod/vod/filters/filter.c
+share/nginx/modules/nginx-module-vod/vod/filters/filter.h
+share/nginx/modules/nginx-module-vod/vod/filters/gain_filter.c
+share/nginx/modules/nginx-module-vod/vod/filters/gain_filter.h
+share/nginx/modules/nginx-module-vod/vod/filters/mix_filter.c
+share/nginx/modules/nginx-module-vod/vod/filters/mix_filter.h
+share/nginx/modules/nginx-module-vod/vod/filters/rate_filter.c
+share/nginx/modules/nginx-module-vod/vod/filters/rate_filter.h
+share/nginx/modules/nginx-module-vod/vod/filters/volume_map.c
+share/nginx/modules/nginx-module-vod/vod/filters/volume_map.h
+share/nginx/modules/nginx-module-vod/vod/hevc_parser.c
+share/nginx/modules/nginx-module-vod/vod/hevc_parser.h
+share/nginx/modules/nginx-module-vod/vod/hls/adts_encoder_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/adts_encoder_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/aes_cbc_encrypt.c
+share/nginx/modules/nginx-module-vod/vod/hls/aes_cbc_encrypt.h
+share/nginx/modules/nginx-module-vod/vod/hls/bit_fields.def
+share/nginx/modules/nginx-module-vod/vod/hls/bit_fields.h
+share/nginx/modules/nginx-module-vod/vod/hls/buffer_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/buffer_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/eac3_encrypt_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/eac3_encrypt_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/frame_encrypt_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/frame_encrypt_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/frame_joiner_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/frame_joiner_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/hls_encryption.h
+share/nginx/modules/nginx-module-vod/vod/hls/hls_muxer.c
+share/nginx/modules/nginx-module-vod/vod/hls/hls_muxer.h
+share/nginx/modules/nginx-module-vod/vod/hls/id3_encoder_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/id3_encoder_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/m3u8_builder.c
+share/nginx/modules/nginx-module-vod/vod/hls/m3u8_builder.h
+share/nginx/modules/nginx-module-vod/vod/hls/media_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/mp4_to_annexb_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/mp4_to_annexb_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/mpegts_encoder_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/mpegts_encoder_filter.h
+share/nginx/modules/nginx-module-vod/vod/hls/sample_aes_avc_filter.c
+share/nginx/modules/nginx-module-vod/vod/hls/sample_aes_avc_filter.h
+share/nginx/modules/nginx-module-vod/vod/input/frames_source.h
+share/nginx/modules/nginx-module-vod/vod/input/frames_source_cache.c
+share/nginx/modules/nginx-module-vod/vod/input/frames_source_cache.h
+share/nginx/modules/nginx-module-vod/vod/input/frames_source_memory.c
+share/nginx/modules/nginx-module-vod/vod/input/frames_source_memory.h
+share/nginx/modules/nginx-module-vod/vod/input/read_cache.c
+share/nginx/modules/nginx-module-vod/vod/input/read_cache.h
+share/nginx/modules/nginx-module-vod/vod/input/silence_generator.c
+share/nginx/modules/nginx-module-vod/vod/input/silence_generator.h
+share/nginx/modules/nginx-module-vod/vod/json_parser.c
+share/nginx/modules/nginx-module-vod/vod/json_parser.h
+share/nginx/modules/nginx-module-vod/vod/language_code.c
+share/nginx/modules/nginx-module-vod/vod/language_code.h
+share/nginx/modules/nginx-module-vod/vod/languages_hash_params.h
+share/nginx/modules/nginx-module-vod/vod/languages_x.h
+share/nginx/modules/nginx-module-vod/vod/manifest_utils.c
+share/nginx/modules/nginx-module-vod/vod/manifest_utils.h
+share/nginx/modules/nginx-module-vod/vod/media_clip.h
+share/nginx/modules/nginx-module-vod/vod/media_format.c
+share/nginx/modules/nginx-module-vod/vod/media_format.h
+share/nginx/modules/nginx-module-vod/vod/media_set.c
+share/nginx/modules/nginx-module-vod/vod/media_set.h
+share/nginx/modules/nginx-module-vod/vod/media_set_parser.c
+share/nginx/modules/nginx-module-vod/vod/media_set_parser.h
+share/nginx/modules/nginx-module-vod/vod/mkv/ebml.c
+share/nginx/modules/nginx-module-vod/vod/mkv/ebml.h
+share/nginx/modules/nginx-module-vod/vod/mkv/mkv_builder.c
+share/nginx/modules/nginx-module-vod/vod/mkv/mkv_builder.h
+share/nginx/modules/nginx-module-vod/vod/mkv/mkv_defs.c
+share/nginx/modules/nginx-module-vod/vod/mkv/mkv_defs.h
+share/nginx/modules/nginx-module-vod/vod/mkv/mkv_format.c
+share/nginx/modules/nginx-module-vod/vod/mkv/mkv_format.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_aes_ctr.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_aes_ctr.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cbcs_encrypt.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cbcs_encrypt.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cenc_decrypt.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cenc_decrypt.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cenc_encrypt.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cenc_encrypt.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cenc_passthrough.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_cenc_passthrough.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_clipper.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_clipper.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_defs.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_format.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_format.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_fragment.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_fragment.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_init_segment.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_init_segment.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_muxer.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_muxer.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_parser.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_parser.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_parser_base.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_parser_base.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_pssh.c
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_pssh.h
+share/nginx/modules/nginx-module-vod/vod/mp4/mp4_write_stream.h
+share/nginx/modules/nginx-module-vod/vod/parse_utils.c
+share/nginx/modules/nginx-module-vod/vod/parse_utils.h
+share/nginx/modules/nginx-module-vod/vod/read_stream.h
+share/nginx/modules/nginx-module-vod/vod/segmenter.c
+share/nginx/modules/nginx-module-vod/vod/segmenter.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/cap_format.c
+share/nginx/modules/nginx-module-vod/vod/subtitle/cap_format.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/dfxp_format.c
+share/nginx/modules/nginx-module-vod/vod/subtitle/dfxp_format.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/subtitle_format.c
+share/nginx/modules/nginx-module-vod/vod/subtitle/subtitle_format.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/ttml_builder.c
+share/nginx/modules/nginx-module-vod/vod/subtitle/ttml_builder.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/webvtt_builder.c
+share/nginx/modules/nginx-module-vod/vod/subtitle/webvtt_builder.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/webvtt_format.c
+share/nginx/modules/nginx-module-vod/vod/subtitle/webvtt_format.h
+share/nginx/modules/nginx-module-vod/vod/subtitle/webvtt_format_template.h
+share/nginx/modules/nginx-module-vod/vod/thumb/thumb_grabber.c
+share/nginx/modules/nginx-module-vod/vod/thumb/thumb_grabber.h
+share/nginx/modules/nginx-module-vod/vod/udrm.c
+share/nginx/modules/nginx-module-vod/vod/udrm.h
+share/nginx/modules/nginx-module-vod/vod/write_buffer.c
+share/nginx/modules/nginx-module-vod/vod/write_buffer.h
+share/nginx/modules/nginx-module-vod/vod/write_buffer_queue.c
+share/nginx/modules/nginx-module-vod/vod/write_buffer_queue.h
+share/nginx/modules/nginx-module-vod/vod/write_stream.h