feat(log): point to passthrough as a potential issue when unable to generate thumbnails

Re: #3433 and #3431
This commit is contained in:
Gabe Kangas 2023-11-20 18:02:35 -08:00
parent dfe5dd494e
commit b4c73315fa
No known key found for this signature in database
GPG key ID: 4345B2060657F330
3 changed files with 12 additions and 6 deletions

View file

@ -620,14 +620,14 @@ func VerifySettings() error {
}
// FindHighestVideoQualityIndex will return the highest quality from a slice of variants.
func FindHighestVideoQualityIndex(qualities []models.StreamOutputVariant) int {
func FindHighestVideoQualityIndex(qualities []models.StreamOutputVariant) (int, bool) {
type IndexedQuality struct {
quality models.StreamOutputVariant
index int
}
if len(qualities) < 2 {
return 0
return 0, qualities[0].IsVideoPassthrough
}
indexedQualities := make([]IndexedQuality, 0)
@ -649,7 +649,8 @@ func FindHighestVideoQualityIndex(qualities []models.StreamOutputVariant) int {
})
// nolint:gosec
return indexedQualities[0].index
selectedQuality := indexedQualities[0]
return selectedQuality.index, selectedQuality.quality.IsVideoPassthrough
}
// GetForbiddenUsernameList will return the blocked usernames as a comma separated string.

View file

@ -69,7 +69,8 @@ func setStreamAsConnected(rtmpOut *io.PipeReader) {
}()
go webhooks.SendStreamStatusEvent(models.StreamStarted)
transcoder.StartThumbnailGenerator(segmentPath, data.FindHighestVideoQualityIndex(_currentBroadcast.OutputSettings))
selectedThumbnailVideoQualityIndex, isVideoPassthrough := data.FindHighestVideoQualityIndex(_currentBroadcast.OutputSettings)
transcoder.StartThumbnailGenerator(segmentPath, selectedThumbnailVideoQualityIndex, isVideoPassthrough)
_ = chat.SendSystemAction("Stay tuned, the stream is **starting**!", true)
chat.SendAllWelcomeMessage()

View file

@ -25,7 +25,7 @@ func StopThumbnailGenerator() {
}
// StartThumbnailGenerator starts generating thumbnails.
func StartThumbnailGenerator(chunkPath string, variantIndex int) {
func StartThumbnailGenerator(chunkPath string, variantIndex int, isVideoPassthrough bool) {
// Every 20 seconds create a thumbnail from the most
// recent video segment.
_timer = time.NewTicker(20 * time.Second)
@ -36,7 +36,11 @@ func StartThumbnailGenerator(chunkPath string, variantIndex int) {
select {
case <-_timer.C:
if err := fireThumbnailGenerator(chunkPath, variantIndex); err != nil {
log.Errorln("Unable to generate thumbnail:", err)
logMsg := "Unable to generate thumbnail: " + err.Error()
if isVideoPassthrough {
logMsg += ". Video Passthrough is enabled. You should disable it to fix this, and other, streaming errors. https://owncast.online/troubleshoot"
}
log.Errorln("Unable to generate thumbnail:", logMsg)
}
case <-quit:
log.Debug("thumbnail generator has stopped")