81 lines
1.8 KiB
Nix
81 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
libbsd,
|
|
libevent,
|
|
libjpeg,
|
|
libdrm,
|
|
pkg-config,
|
|
janus-gateway,
|
|
glib,
|
|
alsa-lib,
|
|
speex,
|
|
jansson,
|
|
libopus,
|
|
nixosTests,
|
|
withJanus ? true,
|
|
}:
|
|
stdenv.mkDerivation rec {
|
|
pname = "ustreamer";
|
|
version = "6.12";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "pikvm";
|
|
repo = "ustreamer";
|
|
rev = "v${version}";
|
|
hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
|
|
};
|
|
|
|
buildInputs =
|
|
[
|
|
libbsd
|
|
libevent
|
|
libjpeg
|
|
libdrm
|
|
]
|
|
++ lib.optionals withJanus [
|
|
janus-gateway
|
|
glib
|
|
alsa-lib
|
|
jansson
|
|
speex
|
|
libopus
|
|
];
|
|
|
|
nativeBuildInputs = [ pkg-config ];
|
|
|
|
makeFlags =
|
|
[
|
|
"PREFIX=${placeholder "out"}"
|
|
"WITH_V4P=1"
|
|
]
|
|
++ lib.optionals withJanus [
|
|
"WITH_JANUS=1"
|
|
# Workaround issues with Janus C Headers
|
|
# https://github.com/pikvm/ustreamer/blob/793f24c4/docs/h264.md#fixing-janus-c-headers
|
|
"CFLAGS=-I${lib.getDev janus-gateway}/include/janus"
|
|
];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
passthru.tests = { inherit (nixosTests) ustreamer; };
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/pikvm/ustreamer";
|
|
description = "Lightweight and fast MJPG-HTTP streamer";
|
|
longDescription = ''
|
|
µStreamer is a lightweight and very quick server to stream MJPG video from
|
|
any V4L2 device to the net. All new browsers have native support of this
|
|
video format, as well as most video players such as mplayer, VLC etc.
|
|
µStreamer is a part of the Pi-KVM project designed to stream VGA and HDMI
|
|
screencast hardware data with the highest resolution and FPS possible.
|
|
'';
|
|
license = licenses.gpl3Plus;
|
|
maintainers = with maintainers; [
|
|
tfc
|
|
matthewcroughan
|
|
];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|