使用 ffmpeg [python soundfile] 从 opus 转换为 ogg 文件
Convert from opus to ogg file using ffmpeg [python soundfile]
我在我的一个项目中使用 python soundfile
音频文件。我有一个包含 opus
个文件的数据集。
python soundfile
不能直接读取opus文件,但可以读取ogg文件。 (https://github.com/bastibe/python-soundfile/issues/252)
如何使用 ffmpeg 将所有 opus 文件转换为 ogg 文件?
我试过以下命令,
ffmpeg -i test_file_2.opus -c:a libvorbis -b:a 16k test_file_2.ogg
但是我得到一个错误,
ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0)
configuration: --prefix=/opt/conda --cc=/opt/conda/conda-bld/ffmpeg_1597178665428/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-pic --enable-pthreads --enable-shared --disable-static --enable-version3 --enable-zlib --enable-libmp3lame
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
[ogg @ 0x55bad6b9cbc0] 543 bytes of comment header remain
Input #0, ogg, from 'test_file_2.opus':
Duration: 00:00:14.10, start: 0.000000, bitrate: 34 kb/s
Stream #0:0: Audio: opus, 48000 Hz, mono, fltp
Metadata:
album : Onder Moeders Vleugels
ENCODER_OPTIONS : --quiet
artist : Louisa May Alcott
title : 02 - Een vroolijk kerstfeest
encoder : opusenc from opus-tools 0.1.10;Lavf57.83.100
Unknown encoder 'libvorbis'
我现在正在使用 librosa 进行转换,但这非常慢:
# converting opus to ogg files for reading audio files with python soundfile
from glob import glob
from tqdm import tqdm
import soundfile as sf
import librosa
import os
for f in tqdm(glob("/Data/AUDIO_DATA/mls_dutch_opus/*/audio/*/*/*.opus") + glob("/Data/AUDIO_DATA/mls_german_opus/*/audio/*/*/*.opus")):
audio, sr = librosa.load(f, res_type='kaiser_fast', sr = 16000)
sf.write(f.replace(".opus", ".ogg"), audio, sr, format='ogg', subtype='vorbis')
os.remove(f)
未知编码器'libvorbis'
您的 ffmpeg 没有 libvorbis 支持。 configure
行中缺少 --enable-libvorbis
。 libvorbis 是一个输出 Vorbis 音频格式的音频编码器。 Vorbis 是 OGG/OGA 容器中通常使用的音频格式。 libvorbis 是 Vorbis 音频的推荐编码器。
找到一个新的 version/package 的 ffmpeg --enable-libvorbis
或重新编译 ffmpeg 并包含它。
实验性 vorbis 编码器
FFmpeg 有一个名为 vorbis 的内置编码器,但它被认为是实验性的,无法与 libvorbis 相提并论。如果您关心质量,请改用 libvorbis。如果你想尝试 vorbis:
ffmpeg -i input.opus -c:a vorbis -strict experimental output.ogg
或管道到 oggenc
ffmpeg -i input.opus -f wav - | oggenc -o output.ogg -
我在我的一个项目中使用 python soundfile
音频文件。我有一个包含 opus
个文件的数据集。
python soundfile
不能直接读取opus文件,但可以读取ogg文件。 (https://github.com/bastibe/python-soundfile/issues/252)
如何使用 ffmpeg 将所有 opus 文件转换为 ogg 文件?
我试过以下命令,
ffmpeg -i test_file_2.opus -c:a libvorbis -b:a 16k test_file_2.ogg
但是我得到一个错误,
ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0)
configuration: --prefix=/opt/conda --cc=/opt/conda/conda-bld/ffmpeg_1597178665428/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-pic --enable-pthreads --enable-shared --disable-static --enable-version3 --enable-zlib --enable-libmp3lame
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
[ogg @ 0x55bad6b9cbc0] 543 bytes of comment header remain
Input #0, ogg, from 'test_file_2.opus':
Duration: 00:00:14.10, start: 0.000000, bitrate: 34 kb/s
Stream #0:0: Audio: opus, 48000 Hz, mono, fltp
Metadata:
album : Onder Moeders Vleugels
ENCODER_OPTIONS : --quiet
artist : Louisa May Alcott
title : 02 - Een vroolijk kerstfeest
encoder : opusenc from opus-tools 0.1.10;Lavf57.83.100
Unknown encoder 'libvorbis'
我现在正在使用 librosa 进行转换,但这非常慢:
# converting opus to ogg files for reading audio files with python soundfile
from glob import glob
from tqdm import tqdm
import soundfile as sf
import librosa
import os
for f in tqdm(glob("/Data/AUDIO_DATA/mls_dutch_opus/*/audio/*/*/*.opus") + glob("/Data/AUDIO_DATA/mls_german_opus/*/audio/*/*/*.opus")):
audio, sr = librosa.load(f, res_type='kaiser_fast', sr = 16000)
sf.write(f.replace(".opus", ".ogg"), audio, sr, format='ogg', subtype='vorbis')
os.remove(f)
未知编码器'libvorbis'
您的 ffmpeg 没有 libvorbis 支持。 configure
行中缺少 --enable-libvorbis
。 libvorbis 是一个输出 Vorbis 音频格式的音频编码器。 Vorbis 是 OGG/OGA 容器中通常使用的音频格式。 libvorbis 是 Vorbis 音频的推荐编码器。
找到一个新的 version/package 的 ffmpeg --enable-libvorbis
或重新编译 ffmpeg 并包含它。
实验性 vorbis 编码器
FFmpeg 有一个名为 vorbis 的内置编码器,但它被认为是实验性的,无法与 libvorbis 相提并论。如果您关心质量,请改用 libvorbis。如果你想尝试 vorbis:
ffmpeg -i input.opus -c:a vorbis -strict experimental output.ogg
或管道到 oggenc
ffmpeg -i input.opus -f wav - | oggenc -o output.ogg -