downgrade ffmpeg (fixes segfault & mono <-> stereo conversion bugs)

This commit is contained in:
Pavel 2024-05-27 20:41:15 +03:00
parent 060f087dc2
commit 27596adef7
3 changed files with 9 additions and 5 deletions

View File

@ -23,9 +23,10 @@ RUN apk add --no-cache \
gnutls-dev && \
mkdir -p /ffmpeg/{ffmpeg_build,bin} && \
cd /ffmpeg && \
wget -O ffmpeg-7.0.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-7.0.1.tar.bz2 && \
tar xjvf ffmpeg-7.0.1.tar.bz2 && \
cd ffmpeg-7.0.1 && \
export FFMPEG_VERSION=6.1.1 && \
wget -O ffmpeg-$FFMPEG_VERSION.tar.bz2 https://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2 && \
tar xjvf ffmpeg-$FFMPEG_VERSION.tar.bz2 && \
cd ffmpeg-$FFMPEG_VERSION && \
PKG_CONFIG_PATH="/ffmpeg/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="/ffmpeg/ffmpeg_build" \
--pkg-config-flags="--static" \

View File

@ -41,9 +41,9 @@ You can change configuration using this environment variables:
- [x] Remove old conversion results and input files that are older than 1 hour.
- [x] Remove input file after transcoding it.
- [x] Do not upload files directly, add download route with streaming instead.
- [x] Conversion from OGG Opus mono to HE-AAC v1 Stereo outputs high-pitched crackling audio.
- [x] Conversion from OGG Opus mono to AAC sometimes crashes the app with SIGSEGV (this can be seen more often with very short audio).
- [ ] If FFmpeg fails, `send_error` won't be called - fix that.
- [ ] Default errors are returned in plain text. Change it to the JSON.
- [ ] Conversion from OGG Opus mono to HE-AAC v1 Stereo outputs high-pitched crackling audio.
- [ ] Conversion from OGG Opus mono to AAC sometimes crashes the app with SIGSEGV (this can be seen more often with very short audio).
- [ ] Docker image for `amd64` and `arm64` (currently only `amd64` is supported because `arm64` cross-compilation with QEMU is sloooooooooooowwwww...).
- [ ] Tests!

View File

@ -70,6 +70,9 @@ impl Transcoder {
encoder.set_rate(sample_rate);
encoder.set_channel_layout(params.channel_layout);
#[cfg(not(feature = "ffmpeg_7_0"))]
encoder.set_channels(params.channel_layout.channels());
encoder.set_format(
codec
.formats()