md5sum

md5sum

我无法获得索法利泽例子来自ffmpeg 文档上班。

我总是得到同样的错误:找不到 SOFA 文件

ffmpeg -i myAudio5-1.wav -af sofalizer=sofa=/home/santa/Desktop/SOFA/ClubFritz6.sofa:type=freq:radius=1 output.flac

(可以使用 找到示例man ffmpeg-all,然后搜索ClubFritz6.sofa

有关我的系统的一些信息:

$ uname -r
4.19.0-16-amd64

$ cat /etc/debian_version
10.9

ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared

正如你所看到的,我已经库米索法已启用。

我试图改变wav 文件作为输入但错误仍然存​​在。我尝试更改沙发文件但错误仍然存​​在。

sofa 文件的路径肯定是有效的,我试过绝对路径和相对路径,错误依旧。

完整错误:

[Parsed_sofalizer_0 @ 0x560af63ecfc0] Can't find SOFA-file '/home/santa/Desktop/SOFA/ClubFritz6.sofa'
[Parsed_sofalizer_0 @ 0x560af63ecfc0] Error while loading SOFA file: '/home/santa/Desktop/SOFA/ClubFritz6.sofa'
[Parsed_sofalizer_0 @ 0x560af63ecfc0] No valid SOFA file could be loaded. Please specify valid SOFA file.
[AVFilterGraph @ 0x560af63ec600] Error initializing filter 'sofalizer' with args 'sofa=/home/santa/Desktop/SOFA/ClubFritz6.sofa:type=freq:radius=1'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

答案1

md5sum

检查 sofa 文件完整性:

$ md5sum ClubFritz6.sofa 
68bed61abd2cf3ab6e81a543626162b7  ClubFritz6.sofa

升级 libmysofa-dev

问题可能是旧版本的库米索法。Arch Linux 上的 1.2 版本对我来说是可行的。Ubuntu 18.04 上的 0.6 版本 (libmysofa-dev) 不起作用。

答案2

正如 llogan 指出的那样,问题确实出在 libmysofa 版本上。

我将描述允许我在 Debian 10 上解决此问题的方法。它的优点是使 Debian 10 ffmpeg 包可以工作(无需更改 ffmpeg 的版本)。

1)下载https://github.com/hoene/libmysofa/releases/tag/v1.2

2)更改版本/libmysofa-1.2/CMakeLists.txt

set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "5")
set(CPACK_PACKAGE_VERSION_PATCH "1")

我们将让 ldconfig 相信它是正确的版本。

3)按照说明进行编译

4)生成 .deb(仍按照说明进行操作)

5)从 .deb 中获取 lib 文件夹(作为存档)

把这个文件夹放在某处

6) sudo nano /etc/ld.so.conf.d/a.conf

输入你选择的lib路径

7) sudo ldconfig

8) sudo ldconfig -p | less

你应该看到类似这样的内容

libmysofa.so.0 (libc6,x86-64) => /your-path/lib/libmysofa.so.0
libmysofa.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libmysofa.so.0

第一个(新的)将优先于已安装在的旧 libmysofa/lib/x86_64-linux-gnu/

9) ldd $(which ffmpeg) | less

确认 ffmpeg 正在使用新库

这种方法不太干净,最好从 Debian sid apt 源安装最新版本的 libmysofa,而不必升级所有内容。我选择这种方法是因为它带来的挑战。

相关内容