FFMPEG on linux

From Ffmpeg工程组

Jump to: navigation, search

编译什么的都通过,现在就是 wmv9 和 rmvb 转不了。

wmv9 我按网上的说明去加 smpte-vc1 也一直报错

CODE:
./libavcodec/libavcodec.so: undefined reference to `vc1DEC_DecodeFrame'
./libavcodec/libavcodec.so: undefined reference to `vc1DEC_DecoderInitialise'
./libavcodec/libavcodec.so: undefined reference to `vc1DEC_DecoderRequirements'
./libavcodec/libavcodec.so: undefined reference to `vc1DECBIT_InitialiseBitstream'
./libavcodec/libavcodec.so: undefined reference to `vc1DEC_DecodeSequence'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1

并且,如果按网上的说明直接 svn 或者 down 下来,然后编译的话是通不过的,我个人就改了 n 多 bug 后才把其它的库都加上

大家还有什么方法能转 rmvb ?rv30/40 我一直没研究明白怎么加到 ffmpeg 里。

ffmpeg , ffmpeg-php 都弄好了,直接在 php 里调,挺爽的。

这是 version 信息


CODE:
FFmpeg version SVN-r6389, Copyright (c) 2000-2004 Fabrice Bellard
configuration:  --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-amr_if2 
--enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-
faad --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay 
 libavutil version: 49.0.1
 libavcodec version: 51.16.0
 libavformat version: 50.5.0
 built on Sep 30 2006 11:08:25, gcc: 3.4.5 20051201 (Red Hat 3.4.5-2)
ffmpeg      SVN-r6389
libavutil   3211265
libavcodec  3346432
libavformat 3278080 

在 gcc 后面加个 -lvc1 就搞定了。


原因是网上说在 Makefile 里加一个 FFLIBS xxxxx 什么的,但实际上,在加完这个后,应该再加一个 EXTRALIBS+=$(FFLIBS) 


EXTRALIBS 我可能拼得不对,Makefile 里有,大家对照一下就能找到正确的了。
实际上vc1库基本没法用的,bug多如牛毛,ffmpeg的WMV2解码也还在开发中,有一个问题没解决,会出现J-picture错误,解码出的影片花屏。

rv30/rv40目前似乎只有使用realmedia提供的动态连接库解码。 


因此,要不然通过WMV DMO和real media 的编解码器编写自己的用于ffmpeg编解码器,要不然借助avisynth+real native等DirectShow解码real media,
WMV9,但没法编码。

第二种方法现在的ffmpeg就可以使用,不过显然第一种方法更可靠,可以避开avisynth的bug,且可以编码

有关该问题的讨论帖可参考ffmpeg工程组论坛中的相关讨论:

FFMPEG on linux
Personal tools