我尝试使用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文件?
答案 0 :(得分:1)
从文件 libvorbisenc.c 中可以看出,libvorbis库仅支持AV_SAMPLE_FMT_FLTP
(浮动平面数据)输入格式。
例如,你必须使用来自ffmpeg的SwResample
库来转换音频数据。
答案 1 :(得分:0)
尝试使用以下内容编译libvorbis包:
LDFLAGS="-static" \
LIBS="-logg" \
./configure \
--prefix=$INSTALL_PREFIX \
--with-gnu-ld \
--with-pic \
--enable-static \
--disable-shared \
--disable-oggtest