]> git.sesse.net Git - nageru/blob - NEWS
Release Nageru and Futatabi 2.2.0.
[nageru] / NEWS
1 Nageru and Futatabi 2.2.0, November 15th, 2022
2
3   - Support AV1 output, via SVT-AV1. Note that this is still somewhat
4     experimental, not the least because SVT-AV1's streaming support
5     is not as mature as x264.
6
7   - Remove the dependency on QCustomPlot.
8
9   - Expose BlurEffect and UnsharpMaskEffect to the theme.
10
11   - Clean up several rarely-unused command-line flags:
12     - All the 10-bit flags are now collapsed to --10-bit.
13     - Remove --http-uncompressed-video.
14     - Remove the x264 VBV flags.
15     - Hide --x264-speedcontrol-verbose.
16     - Hide --no-flush-pbos.
17
18   - Make a workaround for audio monitoring output under PipeWire.
19
20   - Update CEF compatibility (tested with CEF 107).
21
22
23 Nageru and Futatabi 2.1.0, February 6th, 2022
24
25   - Support unsynchronized HDMI/SDI output.
26     
27     This is for if you want just a monitor output without synchronizing
28     your entire stream chain to the output card (ie., you want to keep
29     some other camera as the master). Sound support is untested, and is
30     probably going to crackle a fair bit.
31     
32     There's no GUI support for changing this currently (you enable it
33     by using --output-card-unsynchronized and then using HDMI/SDI output
34     as usual).
35
36   - Support sending a separate x264 encode to disk
37     (--separate-x264-disk-encode and associated --x264-separate-disk-*
38     flags).
39     
40     This is useful for machines that don't have Quick Sync, but where
41     you want to have an archival copy on disk in higher quality
42     than what you streamed out.
43
44   - Fix compilation issues with FFmpeg 5.0.
45
46
47 Nageru and Futatabi 2.0.2, September 3rd, 2021
48
49   - Fix issues with various upstream software:
50     DeckLink 11.7 (and newer) drivers, FFmpeg 4.4, newer CEF.
51
52   - Add a --no-transcode-video flag to Kaeru.
53     
54     This is useful primarily if you want Kaeru to rewrap the stream into
55     Metacube (for Cubemap) and do nothing else with it. Only H.264
56     is supported for now, since everything else assumes that.
57
58
59 Nageru and Futatabi 2.0.1, July 9th, 2020
60
61   - Upgrade DeckLink SDK to 10.11.4.
62
63   - Various bugfixes.
64
65
66 Nageru and Futatabi 2.0.0, June 2nd, 2020
67
68   - Native support for SRT inputs; by default, Nageru will listen
69     for incoming connections on port 9710 and treat them as hotplugged
70     cameras. They do not need any special handling in the theme,
71     and can pick up e.g. the SRT stream ID to be used in the UI.
72     They generally have fewer limitations than using an srt:// URL
73     on an FFmpeg capture; e.g., there is no forced scaling, and they
74     can be used as master clock (although this is not generally
75     recommended).
76
77     For license reaseons, please be sure that libsrt does not link to
78     OpenSSL when building Nageru.
79
80   - You do no longer need to set up a fixed amount of capture cards
81     at startup; by default, at least two will be created for you
82     (fake capture cards) as before, but if you have more, or hotplug
83     more, more slots will be automatically available, and will go
84     away (not take up any resources like fake capture cards do)
85     when unplugged. If you wish to artificially limit the maximum
86     number of cards like before, you can use the new switch
87     --max-num-cards.
88
89   - MJPEG handling now includes 4:2:0 support in both Nageru and
90     Futatabi, as SRT inputs are often 4:2:0 and not 4:2:2.
91
92   - FFmpeg capture cards (including SRT cards) now use VA-API
93     hardware acceleration for decoding whenever available.
94
95
96 Nageru and Futatabi 1.9.3, April 12th, 2020
97
98   - Support (video-only) V4L2 output. The intended use case is output into
99     v4l2loopback to get into videoconferencing or the likes:
100
101      sudo apt install v4l2loopback-dkms
102      sudo modprobe v4l2loopback video_nr=2 card_label='Nageru loopback' max_width=1280 max_height=720 exclusive_caps=1
103      nageru --v4l-output /dev/video2
104
105    Start Nageru before any readers.
106
107
108 Nageru and Futatabi 1.9.2, March 29th, 2020
109
110   - Support handling white balance directly in Nageru, without themes
111     manually inserting a WhiteBalanceEffect or handling set_wb().
112     To use it, call scene:add_white_balance() instead of
113     scene:add_effect(WhiteBalanceEffect.new()). If using this functionality,
114     white balance will be properly propagated to the MJPEG feed and
115     through Futatabi, so that replays get the correct white balance.
116     Futatabi's UI will still be uncorrected, though.
117
118   - Make it possible to siphon out a single MJPEG stream, for remote
119     debugging, single-camera recording, single-camera streaming via
120     Kaeru or probably other things. The URL for this is /feeds/N.mp4
121     where N is the card index (starting from zero).
122
123   - The theme can now access some audio settings; it can get (not set)
124     number of buses and names, get/set fader volume, get/set mute,
125     and get/set EQ parameters.
126
127   - In Futatabi, it is now possible to set custom source labels, with
128     the parameter --source-label NUM:LABEL (or -l NUM:LABEL).
129
130   - When the playback speed changes in Futatabi, ease into the new speed.
131     The easing period is nominally 200 ms, but it will be automatically
132     shortened or lengthened (up to as much as two seconds in extreme
133     cases, especially involving very slight speed change) if this
134     helps getting back into a cadence of hitting the original frames.
135     This can mean significant performance improvements when ramping
136     from higher speeds back into 100%.
137
138   - Updates for newer versions of CEF (tested with Chrome 80).
139
140   - Various bugfixes and performance improvements.
141
142
143 Nageru and Futatabi 1.9.1, November 17th, 2019
144
145   - Support disabling optional effects if a given other effect is _enabled_
146     (typically for mutually exclusive effects).
147     
148   - Make it possible for the theme to override the status line, by declaring
149     a function format_status_line() in the theme. Inspired by a C++ patch by
150     Alex Thomazo in the Breizhcamp repository.
151
152   - Various bugfixes.
153
154
155 Nageru and Futatabi 1.9.0, July 20th, 2019
156
157   - Significant reworking of the theme engine: Chains (now called scenes)
158     can now instantiate different versions behind-the-scenes instead of the
159     user having to worry about input types, low/high quality, or replacing
160     effects with others. Menus can have submenus and checkboxes. Finally, some
161     callbacks, such as num_channels(), have been replaced with easier-to-use
162     imperative functions, ie., an explicit call to Nageru.set_num_channels(N).
163
164     See the documentation for more information, or the included themes,
165     which have been ported to the new interfaces. Existing themes will continue
166     to run without modification, but the old interfaces are deprecated.
167
168     Martin Sandsmark contributed a bugfix to this work.
169
170   - Support cross-compilation. Patch from Helmut Grohne.
171
172   - Kaeru now has a parameter --disable-audio for transcoding streams
173     with no audio.
174
175   - Various bugfixes. In particular, work around an issue where Mesa's shader
176     cache interacts with Qt's EGL support to create a confusing crash with
177     “vertex shader lacks `main'”.
178
179
180 Nageru and Futatabi 1.8.6, April 19th, 2019
181
182   - Filenames for the recordings are now without colons; it caused
183     too much problems with various software, including most players.
184
185   - Various bugfixes.
186
187
188 Nageru and Futatabi 1.8.5, March 30th, 2019
189
190   - Experimental support for audio in Futatabi: The MJPEG export from
191     Nageru now supports audio, and Futatabi will store it and play it
192     back. Audio is currently only supported when playing at 100% speed
193     (no pitch shift or time stretching), and there is no audio output
194     to the Futatabi operator.
195
196   - Significant optimizations to MJPEG encoding, both when in use and when
197     not in use.
198
199   - Various bugfixes.
200
201
202 Nageru and Futatabi 1.8.4, March 11th, 2019
203
204   - Various bugfixes, in particular for 32-bit platforms.
205
206
207 Nageru and Futatabi 1.8.3, March 10th, 2019
208
209   - Allow controlling video mixing from MIDI events. Adapted from a patch
210     by Yann Dubreuil, from the BreizhCamp repository.
211
212   - Use ALSA hardware timestamps for input; gives more stable delay.
213     Patch by Yann Dubreuil, from the BreizhCamp repository.
214
215   - For FFmpeg inputs, add an option for playing as fast as possible
216     (set rate >= 10.0).
217
218   - In Futatabi, support queueing and playing clips with no cue-out point.
219     This opens up for new and even faster UI workflows.
220
221   - Many bugfixes.
222
223
224 Nageru and Futatabi 1.8.2, January 19th, 2019
225
226   - Futatabi now supports MIDI controllers like Nageru, including an editor
227     and a sample mapping for the Behringer CMD PL-1.
228
229   - Futatabi now supports changing master speed during play, both via a
230     MIDI controller and the GUI.
231
232   - Various bugfixes.
233
234
235 Nageru and Futatabi 1.8.1, December 30th, 2018
236
237   - Futatabi can now communicate its queue status through a subtitle track,
238     and Nageru can consume it. This allows Nageru themes to get precise
239     information programmatically, e.g. to show status or automatically
240     switch away when the queue is about to end.
241
242   - Futatabi can now reuse the computed flow across successive frames when
243     interpolating between the same frame pair. This significantly reduces
244     the GPU load when doing super-slow motion (slower than 0.5x).
245
246   - Various smaller fixes.
247
248
249 Nageru and Futatabi 1.8.0, December 20th, 2018
250
251   - Initial release of Futatabi, a multicamera slow motion video server
252     designed to be used with Nageru. Futatabi is currently in alpha stage
253     and largely undocumented.
254
255   - Add support for multi-camera export from Nageru. A multi-camera stream
256     contains all frames from all camera inputs (unless overridden by
257     --mjpeg-export-cards), unprocessed except for MJPEG encoding.
258     MJPEG encoding is done in hardware (via VA-API) on Skylake or newer,
259     or using libjpeg otherwise. The intended user of this stream is Futatabi.
260
261
262 Nageru 1.7.5, November 11th, 2018
263
264   - Fix a bug where --record-x264-video would not work when VA-API was
265     not present, making the option rather useless (broken in 1.7.2).
266     Bug reported by Peter De Schrijver.
267
268   - The build system has been switched to Meson; see the README for new
269     build instructions.
270
271   - Various smaller fixes.
272
273
274 Nageru 1.7.4, August 31st, 2018
275
276   - Rework the x264 speedcontrol presets, again. (They earlier assumed
277     we could control B-frame settings on the fly, which we cannot with
278     threaded lookahead.) Also support x264 >= 153, which can support
279     multiple bit depths in the same library.
280
281   - Default to SDI inputs instead of HDMI.
282
283   - Add a mode to run in full screen (--fullscreen). Adapted from a patch
284     by Yoann Dubreuil.
285
286   - Add support for lift/gamma/gain in the theme. Patch by Alexandre Thomazo.
287
288
289 Nageru 1.7.3, May 22nd, 2018
290
291   - When using multichannel audio, add a control for adjusting the
292     stereo width (from normal stereo to mono, all the way to
293     inverted stereo).
294
295   - Removed --http-coarse-timebase (it is now always on).
296
297   - Various bugfixes.
298
299
300 Nageru 1.7.2, April 28th, 2018
301
302   - Several improvements to video (FFmpeg) inputs: You can now use
303     them as audio sources, you can right-click on video channels
304     to change URL/filename on-the-fly, themes can ask for forced
305     disconnection (useful for network sources that are hanging),
306     and various other improvements. Be aware that the audio support
307     may still be somewhat rough, as A/V sync of arbitrary video
308     playout is a hard problem.
309
310   - The included themes have been fixed to properly make the returned
311     chain preparation functions independent of global state (e.g. if
312     the white balance for a channel was changed before the frame was
313     actually rendered). If you are using a custom theme, you may want
314     to apply similar fixes to it.
315
316   - In Metacube stream output, mark each keyframe with a pts metadata
317     block. This allows Cubemap 1.4.0 or newer to serve fMP4 fragments
318     for HLS from Nageru's output, without any further remuxing or
319     transcoding.
320
321   - If needed, Nageru will now automatically try to autodetect a
322     usable --va-display parameter by probing all DRM nodes for H.264
323     encoders. This removes the need to set --va-display in almost all
324     cases, and also removes the dependency on libpci.
325
326   - For GPUs that support querying available memory (in practice only
327     NVIDIA GPUs at the current time), expose the amount of used/total
328     GPU memory both on standard output and in the Prometheus metrics
329     (as well as included Grafana dashboard).
330
331   - The Grafana dashboard now supports heatmaps for the chosen x264
332     speedcontrol preset (requires Grafana 5.1 or newer). (There used to
333     be a heatmap earlier, but it was all broken.)
334
335   - Various bugfixes.
336
337
338 Nageru 1.7.1, March 26th, 2018
339
340   - Various bugfixes, mostly related to HTML and video inputs.
341
342
343 Nageru 1.7.0, March 8th, 2018
344
345   - Support for HTML5 graphics directly in Nageru, through CEF
346     (Chromium Embedded Framework). This performs better and is more
347     flexible than integrating with CasparCG over a socket. Note that
348     CEF is an optional component; see the documentation for more
349     information.
350
351   - Add an HTTP endpoint for enumerating channels and one for getting
352     only their colors. Intended for remote tally applications;
353     set the documentation.
354
355   - Add a video grid display that removes the audio controls and shows
356     the video channels only, potentially in multiple rows if that makes
357     for a larger viewing area.
358
359   - Themes can now present simple menus in the Nageru UI. See the
360     documentation for more information.
361
362   - Various bugfixes.
363
364
365 Nageru 1.6.4, January 25th, 2018
366
367   - Fix compilation with the upcoming FFmpeg 3.5.
368
369   - Switch to LuaJIT for the theme engine, which is faster.
370
371   - Various bugfixes and smaller optimizations.
372
373
374 Nageru 1.6.3, November 8th, 2017
375
376   - Add quick-cut keys (Q, W, E, etc.) below the preview keys.
377     Since it's easy to hit these by accident and put up a signal
378     you didn't want, they are disabled by default (they can be
379     enabled in the video menu, or with the command line flag
380     --quick-cut-keys).
381
382   - Rework the x264 speedcontrol presets to better match newer
383     x264 versions.
384
385   - Add an option for changing the HTTP port (--http-port).
386
387   - Various smaller bug and integration fixes.
388
389
390 Nageru 1.6.2, July 16th, 2017
391
392   - Various smaller Kaeru fixes, mostly around metrics. Also,
393     you can now adjust the x264 bitrate in Kaeru (in 100 kbit/sec
394     increments) by sending SIGUSR1 (higher) or SIGUSR2 (lower).
395
396
397 Nageru 1.6.1, July 9th, 2017
398
399   - Add native export of Prometheus metrics.
400
401   - Rework the frame queue drop algorithm. The new one should handle tricky
402     situations much better, especially when a card is drifting very slowly
403     against the master timer.
404
405   - Add Kaeru, an experimental transcoding tool based on Nageru code.
406     Kaeru can run headless on a server without a GPU to transcode a
407     Nageru stream into a lower-bitrate one, replacing VLC.
408
409   - Work around a bug in some versions of NVIDIA's OpenGL drivers that would
410     crash Nageru after about three hours (fix in cooperation with Movit).
411
412   - Fix a crash with i965-va-driver 1.8.x.
413
414   - Reduce mutex contention in certain critical places, causing lower tail
415     latency in the mixer.
416
417
418 Nageru 1.6.0, May 29th, 2017
419
420   - Add support for having videos (from file or from URL) as a separate
421     input channels, albeit with some limitations. Apart from the obvious use of
422     looping pause clips or similar, this can be used to integrate with CasparCG;
423     see the manual for more details.
424
425   - Add a frame analyzer (accessible from the Video menu) containing an
426     RGB histogram and a color dropped tool. This is useful in calibrating
427     video chains by playing back a known signal. Note that this adds a
428     dependency on QCustomPlot.
429
430   - Allow overriding Y'CbCr input interpretation, for inputs that don't
431     use the correct settings. Also, Rec. 601 is now used by default instead
432     of Rec. 709 for SD resolutions.
433
434   - Support other sample rates than 48000 Hz from bmusb.
435
436
437 Nageru 1.5.0, April 5th, 2017
438
439   - Support for low-latency HDMI/SDI output in addition to (or instead of) the
440     stream. This currently only works with DeckLink cards, not bmusb. See the
441     manual for more information.
442
443   - Support changing the resolution from the command line, instead of locking
444     everything to 1280x720.
445
446   - The A/V sync code has been rewritten to be more in line with Fons
447     Adriaensen's original paper. It handles several cases much better,
448     in particular when trying to match 59.94 and 60 Hz sources to each other.
449     However, it might occasionally need a few extra seconds on startup to
450     lock properly if startup is slow.
451
452   - Add support for using x264 for the disk recording. This makes it possible,
453     among other things, to run Nageru on a machine entirely without VA-API
454     support.
455
456   - Support for 10-bit Y'CbCr, both on input and output. (Output requires
457     x264 disk recording, as Quick Sync Video does not support 10-bit H.264.)
458     This requires compute shader support, and is in general a little bit
459     slower on input and output, due to the extra amount of data being shuffled
460     around. Intermediate precision is 16-bit floating-point or better,
461     as before.
462
463   - Enable input mode autodetection for DeckLink cards that support it.
464     (bmusb mode has always been autodetected.)
465
466   - Add functionality to add a time code to the stream; useful for debugging
467     latency.
468
469   - The live display is now both more performant and of higher image quality.
470
471   - Fix a long-standing issue where the preview displays would be too bright
472     when using an NVIDIA GPU. (This did not affect the finished stream.)
473
474   - Many other bugfixes and small improvements.
475
476
477 Nageru 1.4.2, November 24th, 2016
478
479   - Fix a thread race that would sometimes cause x264 streaming to go awry.
480
481
482 Nageru 1.4.1, November 6th, 2016
483
484   - Various bugfixes.
485
486
487 Nageru 1.4.0, October 26th, 2016
488
489   - Support for multichannel (or more accurately, multi-bus) audio,
490     choosable from the UI or using the --multichannel command-line
491     flag. In multichannel mode, you can take in inputs from multiple
492     different sources (or different channels on the same source, for
493     multichannel sound cards), apply effects to them separately and then
494     mix them together. This includes both audio from the video cards
495     as well as ALSA inputs, including hotplug. Ola Gundelsby contributed
496     invaluable feedback on this feature throughout the entire
497     development cycle.
498
499   - Support for having MIDI controllers control various aspects of the
500     audio UI, with relatively flexible mapping. Note that different
501     MIDI controllers can vary significantly in what protocol they speak,
502     so Nageru will not necessarily work with all. (The primary testing
503     controller has been the Akai MIDImix, and a pre-made mapping for
504     that is included. The Korg nanoKONTROL2 has also been tested and
505     works, but it requires some Korg-specific SysEx commands to make
506     the buttons and lights work.)
507
508   - Add a disk space indicator to the main window.
509
510   - Various bugfixes. In particular, an issue where the audio would pitch
511     up sharply after a series of many dropped frames has been fixed.
512
513
514 Nageru 1.3.4, August 2nd, 2016
515
516   - Various bugfixes.
517
518
519 Nageru 1.3.3, July 27th, 2016
520
521   - Various changes to make distribution packaging easier; in particular,
522     theme data can be picked up from /usr/local/share/nageru.
523
524   - Fix various FFmpeg deprecation warnings, now that we need FFmpeg
525     3.1 for other reasons anyway.
526
527
528 Nageru 1.3.2, July 23rd, 2016
529
530   - Allow limited hotplugging (unplugging and replugging) of USB cards.
531     You can use the new command-line option --num-fake-cards (-C) to add
532     fake cards that show only a single color and that will be replaced
533     by real cards as you plug them in; you can also unplug cards and have
534     them be replaced by fake cards. Fake cards can also be used for testing
535     Nageru without actually having any video cards available.
536
537   - Add Metacube timestamping of every keyframe, for easier detection of
538     streams not keeping up. Works with the new timestamp feature of
539     Cubemap 1.3.1. Will be ignored (save for some logging) in older
540     Cubemap versions.
541
542   - The included default theme has been reworked and cleaned up to be
543     more understandable and extensible.
544
545   - Add more command-line options for initial audio setup.
546
547
548 Nageru 1.3.1, July 1st, 2016
549
550  - Various display bugfixes.
551
552
553 Nageru 1.3.0, June 26th, 2016
554
555  - It is now possible, given enough CPU power (e.g., a quad-core Haswell or
556    faster desktop CPU), to output a stream that is suitable for streaming
557    directly to end users without further transcoding. In particular, this
558    includes support for encoding the network stream with x264 (the stream
559    saved to disk is still done using Quick Sync), for Metacube framing (for
560    streaming to the Cubemap reflector), and for choosing the network stream
561    mux. For more information, see the README.
562
563  - Add a flag (--disable-alsa-output) to disable ALSA monitoring output.
564
565  - Do texture uploads from the main thread instead of from separate threads;
566    may or may not improve stability with NVIDIA's proprietary drivers.
567
568  - When beginning a new video segment, the shutdown of the old encoder
569    is now done in a background thread, in order to not disturb the external
570    stream. The audio still goes into a somewhat random stream, though.
571
572  - You can now override the default stream-to-card mapping with --map-signal=
573    on the command line.
574
575  - Nageru now tries to lock itself into RAM if it has the permissions to do
576    so, for better realtime behavior. (Writing the stream to disk tends to
577    fill the buffer cache, eventually paging less-used parts of Nageru out.)
578
579  - Various fixes for deadlocks, memory leaks, and many other errors.
580
581
582 Nageru 1.2.1, April 15th, 2016
583
584  - Images are now updated from disk about every second, so that it is possible
585    to update e.g. overlays during streaming, although somewhat slowly.
586
587  - Fix support for PNG images.
588
589  - You can now send SIGHUP to start a new cut instead of using the menu.
590
591  - Added a --help option.
592
593  - Various tweaks to OpenGL fence handling.
594
595
596 Nageru 1.2.0, April 6th, 2016
597
598  - Support for Blackmagic's PCI and Thunderbolt cards, using the official
599    (closed-source) Blackmagic drivers. (You do not need the SDK installed, though.)
600    You can use PCI and USB cards pretty much interchangeably.
601
602  - Much more stable handling of frame queues on non-master cards. In particular,
603    you can have a master card on 50 Hz and another card on 60 Hz without getting
604    lots of warning messages and a 10+ frame latency on the second card.
605
606  - Many new options in the right click menu on cards: Adjustable video inputs,
607    adjustable audio inputs, adjustable resolutions, ability to select card for
608    master clock.
609
610  - Add support for starting with almost all audio processing turned off
611    (--flat-audio).
612
613  - The UI now marks inputs with red or green to mark them as participating in
614    the live or preview signal, respectively. Red takes priority. (Actually,
615    it merely asks the theme for a color for each input; the theme contains
616    the logic.)
617
618  - Add support for uncompressed video instead of H.264 on the HTTP server,
619    while still storing H.264 to files (--http-uncompressed-video). Note that
620    depending on your client, this might not actually be more CPU efficient
621    even on localhost, so be sure to check.
622
623  - Add a simpler, less featureful theme (simple.lua) that should be easier to
624    understand for beginners. Themes are now also choosable with -t on the command
625    line.
626
627  - Too many bugfixes and small tweaks to list. In particular, many memory leaks
628    in the streaming part have been identified and fixed.
629
630
631 Nageru 1.1.0, February 24th, 2016
632
633  - Support doing the H.264 encoding on a different graphics device from the one
634    doing the mixing. In particular, this makes it possible to use Nageru on an
635    NVIDIA GPU while still encoding H.264 video using Intel Quick Sync (NVENC
636    is not supported yet) -- it is less efficient since the data needs to be read
637    back via the CPU, but the NVIDIA cards and drivers are so much faster that it
638    doesn't really matter. Tested on a GTX 950 with the proprietary drivers.
639
640  - In the included example theme, fix fading to/from deinterlaced sources.
641
642  - Various smaller compilation, distribution and documentation fixes.
643
644
645 Nageru 1.0.0, January 30th, 2016
646
647  - Initial release.