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