0

我尝试使用 FFMpeg 生成 MKV 视频格式。默认情况下,FFMpeg 将使用 h264 和 libvorbis。但是当我使用ffmpeg源文件夹下的doc/examples/muxing.c时,总是报错:

[libvorbis @ 002e52a0] Specified sample format s16 is invalid or not supported
Could not open audio codec: Error number -22 occurred

我使用了 Zeranoe FFmpeg并显示了这个错误。我还尝试在 MinGW 下从源代码编译 ffmpeg,并且我还通过以下配置启用了 libvorbis:

$ ./configure --prefix=/mingw --enable-libvpx --enable-libvorbis --enable-shared --enable-static

在制作之前,我还安装了 libvorbis、libogg、yasm 等。但错误仍然存​​在。

如果我使用 ffmpeg.exe 将视频转换为 webm 格式,它可以工作。命令如下:

ffmpeg -i test.h264 -vcodec libvpx -acodec libvorbis output.webm

生成的 output.webm 可以用 Firefox 或其他东西播放。所以我认为编译好的ffmpeg库是可以的。但是为什么我不能在 muxing.c 代码中生成 webm 文件呢?

4

2 回答 2

1

从文件libvorbisenc.c中可以看出,libvorbis 库仅支持AV_SAMPLE_FMT_FLTP浮点平面数据)输入格式。

例如,您必须使用SwResample来自 ffmpeg 的库来转换音频数据。

于 2013-06-06T10:52:09.083 回答
0

尝试使用以下内容编译 libvorbis 包:

LDFLAGS="-static" \
LIBS="-logg" \
./configure \
--prefix=$INSTALL_PREFIX \
--with-gnu-ld \
--with-pic \
--enable-static \
--disable-shared \
--disable-oggtest
于 2014-02-27T15:06:12.163 回答