v1.7.0: Add quality upgrade during download
Caution
Windows binaries are not statically compiled since v1.1.3+3. This is obviously a bug that need to be fixed.
New feature: Quality upgrade
When downloading a stream, FC2 may not expose the 3Mbps URL at the start of the download (because the streamer was streaming below 3MBps, for example). At the time, the solution proposed by HoloArchivists is to use waitForQualityMaxTries
(equivalent to wait-for-quality-timeout
in the original project), which waits for the download.
However, there's a problem: the 3Mbps URL may appear later, perhaps 1, 5, 10 minutes... depending on the streamer's bitrate. Because of this, the waitForQuality
feature may delete the beginning of the video.
A new feature is added to handle this issue: quality upgrade during download.
allowQualityUpgrade
and pollQualityUpgradeInterval
have been added to the configuration file:
## If the requested quality is not available, keep retrying before falling
## back to the next best quality. (default: 60)
##
## There is a 1 second delay between each retry. The value must be big enough
## so that the best quality (3Mbps) is available. If your streamer takes more
## than expected to prepare, you should increase this value.
waitForQualityMaxTries: 60
+ ## EXPERIMENTAL: Allow quality upgrade during download if the requested
+ ## quality is not "yet" available. (default: false)
+ ##
+ ## If the requested quality is not available, the downloader will fallback to
+ ## the best quality available. However, it is possible that the streamer will
+ ## upgrade the quality during the stream. FC2 often "waits" for the stream to
+ ## be stable before upgrading the quality.
+ ##
+ ## If this option is enabled, the downloader will periodically check if the
+ ## quality has been upgraded. If the quality has been upgraded, the downloader
+ ## will switch to the new quality. **A cut off will be present in the recording.**
+ ##
+ ## If this option is enabled, it is recommended to:
+ ##
+ ## - Reduce waitForQualityMaxTries to 10s.
+ ## - Enable Remux or Concat to fix mpegts discontinuities.
+ allowQualityUpgrade: false
+ ## How many seconds between checks to see if the quality can be upgraded. (default: 10s)
+ ##
+ ## allowQualityUpgrade needs to be enabled for this to work.
+ pollQualityUpgradeInterval: '10s'
Please read the comments before enabling this feature. A cut will be present in the recording. (similar to switching qualities on Youtube).
Fixes
- Mixed format (aac stream vs aac) will use intermediate fifos during concatenation to avoid failing
aac_adtstoasc
which can only be applied on the output file. FIFOs does not impact performance. However, Windows users will use intermediate files, which does. (#39) - Memory leaks are now checked seriously with Valgrind.
SHA256 Checksums
de005106a94a7a1bfba26139e3cc8bd329ce0fdda1c1ad47c911818d22a9cdbd *fc2-live-dl-go-darwin-amd64
fa8bd9f1c57c6b258e6a9b177049c7afae92a08d3f9c721d1ebf88567b0a5cd4 *fc2-live-dl-go-darwin-arm64
11115f1e4311f2bfafaf6b49894bcc132b38d0abc264ad935b0381e1edf4b6b9 *fc2-live-dl-go-linux-amd64
9f356eafffac1053106f02591653cc171fff246aa034a0ab3b5f46b95fd6dd7f *fc2-live-dl-go-linux-arm64
e9ecc85b3dc6e108413ef849dbeabf5334ca955f9ef47551fcc58dd35105efdc *fc2-live-dl-go-linux-riscv64
a4a19cb372e66aaaca61347477fea42e22c1e6dbad31452769ccfc16c08cfaad *fc2-live-dl-go-windows-amd64.exe
Full Changelog: v1.6.5...v1.7.0