depot/third_party/nixpkgs/pkgs/applications/video/ustreamer/default.nix

74 lines
1.7 KiB
Nix
Raw Normal View History

{ 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;
};
}