mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-14 19:34:57 +02:00
Fix:Force AAC when transcoding ALAC audio file streams #1372
This commit is contained in:
parent
7a7708403f
commit
ff10287d05
4 changed files with 22 additions and 4 deletions
|
@ -71,6 +71,10 @@ class Stream extends EventEmitter {
|
|||
if (!this.tracks.length) return null
|
||||
return this.tracks[0].mimeType
|
||||
}
|
||||
get tracksCodec() {
|
||||
if (!this.tracks.length) return null
|
||||
return this.tracks[0].codec
|
||||
}
|
||||
get mimeTypesToForceAAC() {
|
||||
return [
|
||||
AudioMimeType.FLAC,
|
||||
|
@ -81,6 +85,11 @@ class Stream extends EventEmitter {
|
|||
AudioMimeType.WEBMA
|
||||
]
|
||||
}
|
||||
get codecsToForceAAC() {
|
||||
return [
|
||||
'alac'
|
||||
]
|
||||
}
|
||||
get userToken() {
|
||||
return this.user.token
|
||||
}
|
||||
|
@ -130,7 +139,7 @@ class Stream extends EventEmitter {
|
|||
}
|
||||
|
||||
async checkSegmentNumberRequest(segNum) {
|
||||
var segStartTime = segNum * this.segmentLength
|
||||
const segStartTime = segNum * this.segmentLength
|
||||
if (this.startTime > segStartTime) {
|
||||
Logger.warn(`[STREAM] Segment #${segNum} Request @${secondsToTimestamp(segStartTime)} is before start time (${secondsToTimestamp(this.startTime)}) - Reset Transcode`)
|
||||
await this.reset(segStartTime - (this.segmentLength * 2))
|
||||
|
@ -139,7 +148,7 @@ class Stream extends EventEmitter {
|
|||
return false
|
||||
}
|
||||
|
||||
var distanceFromFurthestSegment = segNum - this.furthestSegmentCreated
|
||||
const distanceFromFurthestSegment = segNum - this.furthestSegmentCreated
|
||||
if (distanceFromFurthestSegment > 10) {
|
||||
Logger.info(`Segment #${segNum} requested is ${distanceFromFurthestSegment} segments from latest (${secondsToTimestamp(segStartTime)}) - Reset Transcode`)
|
||||
await this.reset(segStartTime - (this.segmentLength * 2))
|
||||
|
@ -264,7 +273,11 @@ class Stream extends EventEmitter {
|
|||
|
||||
const logLevel = process.env.NODE_ENV === 'production' ? 'error' : 'warning'
|
||||
|
||||
const audioCodec = (this.mimeTypesToForceAAC.includes(this.tracksMimeType) || this.transcodeForceAAC) ? 'aac' : 'copy'
|
||||
let audioCodec = 'copy'
|
||||
if (this.transcodeForceAAC || this.mimeTypesToForceAAC.includes(this.tracksMimeType) || this.codecsToForceAAC.includes(this.tracksCodec)) {
|
||||
Logger.debug(`[Stream] Forcing AAC for tracks with mime type ${this.tracksMimeType} and codec ${this.tracksCodec}`)
|
||||
audioCodec = 'aac'
|
||||
}
|
||||
|
||||
this.ffmpeg.addOption([
|
||||
`-loglevel ${logLevel}`,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue