android ffmpeg支持rmvb格式吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android ffmpeg支持rmvb格式吗相关的知识,希望对你有一定的参考价值。
参考技术A 要让ffmpeg支持硬解码就必须用android的媒体库 libstagefright下载libstagefright的花就要到ffmpeg 目录的tools 目录下面, 这里有个 build-libstagefright.sh , 其内容如下:
#!/bin/bash
#在这里添加你的NDK目录
if [ "$NDK" = "" ]; then
echo NDK variable not set, assuming $HOME/android-ndk
export NDK=$HOME/android-ndk
fi
echo "Fetching Android system headers"
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_frameworks_base.git ../android-source/frameworks/base
git clone --depth=1 --branch gingerbread-release git://github.com/CyanogenMod/android_system_core.git ../android-source/system/core
echo "Fetching Android libraries for linking"
# Libraries from any froyo/gingerbread device/emulator should work
# fine, since the symbols used should be available on most of them.
if [ ! -d "../android-libs" ]; then
if [ ! -f "../update-cm-7.0.3-N1-signed.zip" ]; then
wgethttp://download、cyanogenmod、com/get/update-cm-7.0.3-N1-signed.zip -P../
fi
unzip ../update-cm-7.0.3-N1-signed.zip system/lib/* -d../
mv ../system/lib ../android-libs
rmdir ../system
fi
SYSROOT=$NDK/platforms/android-9/arch-arm
# Expand the prebuilt/* path into the correct one
TOOLCHAIN=`echo $NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/*-x86`
export PATH=$TOOLCHAIN/bin:$PATH
ANDROID_SOURCE=../android-source
ANDROID_LIBS=../android-libs
ABI="armeabi-v7a"
rm -rf ../build/stagefright
mkdir -p ../build/stagefright
DEST=../build/stagefright
FLAGS="--target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm --cpu=armv7-a"
FLAGS="$FLAGS --sysroot=$SYSROOT"
FLAGS="$FLAGS --disable-avdevice --disable-decoder=h264 --disable-decoder=h264_vdpau --enable-libstagefright-h264"
EXTRA_CFLAGS="-I$ANDROID_SOURCE/frameworks/base/include -I$ANDROID_SOURCE/system/core/include"
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$ANDROID_SOURCE/frameworks/base/media/libstagefright"
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$ANDROID_SOURCE/frameworks/base/include/media/stagefright/openmax"
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$NDK/sources/cxx-stl/gnu-libstdc /include -I$NDK/sources/cxx-stl/gnu-libstdc /libs/$ABI/include"
EXTRA_CFLAGS="$EXTRA_CFLAGS -march=armv7-a -mfloat-abi=softfp -mfpu=neon"
EXTRA_LDFLAGS="-Wl,--fix-cortex-a8 -L$ANDROID_LIBS -Wl,-rpath-link,$ANDROID_LIBS -L$NDK/sources/cxx-stl/gnu-libstdc /libs/$ABI"
EXTRA_CXXFLAGS="-Wno-multichar -fno-exceptions -fno-rtti"
DEST="$DEST/$ABI"
FLAGS="$FLAGS --prefix=$DEST"
mkdir -p $DEST
echo $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-cxxflags="$EXTRA_CXXFLAGS" > $DEST/info.txt
#注意看这里是./configure,说明这个脚本要移动到上级目录去执行,也就是ffmpeg目录下。而不是仅仅把./configure 修改为 ../configure ,不然找不到头文件什么的,我之前说错了 sorry ./configure $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-cxxflags="$EXTRA_CXXFLAGS" | tee $DEST/configuration.txt
[ $PIPESTATUS == 0 ] || exit 1
make clean
make -j4 || exit 1
你会发现这里面绿色的两行是要用git工具的。 git是啥? github 专用的下载工具,功能和svn类似。
这个东西用apt-get install 的方法居然装不上,后来用新立德软件管理器安装成功了,oh-yeah! 但是接下来遇到一个问题: 我们公司是有代理网关的, 通过网关要用户密码。 而git始终没有办法通过代理网关。
网上提供的方法多半是装一个connect 工具, 进行端口转换。我觉得太麻烦了。经过一番折腾之后惊奇的发现,把 git://github.com/CyanogenMod/... 修改为https://github。com/CyanogenMod/ 就能下载了! !
还在被代理困扰的孩纸们可以试试本回答被提问者和网友采纳
支持mpeg-4/h.263/h.264/h.265/vp8等格式 包含mp4 rmvb avi吗
关于视频转换的基础知识和本人自身经验:一,视频格式知识:首先要记住的是,文件的后缀名不代表其视频和音频的编码格式。
1,封装格式:封装格式表明这个视频文件是用什么方案把视频流,音频流以及字幕融和在一个文件中。一般来说,视频文件的后缀名就是它的封装格式。常见的封转格式有MKV,MP4,RMVB,AVI,WMV。
2,视频编码格式:视频格式表明用什么方案来处理,压缩画面,使之成为视频流。常见的有MPEG系列(具体有mpeg1,mpeg2,AVC,Divx,Xvid等);Real Video系列;AVI,WMV9等
3,音频编码格式:声音的编码方案,常见的有mp3,aac,flac,ape等。
音频文件一般是独立的,所以音频文件的后缀名就是它的编码格式。文件名为“xxxx.mp3”的文件就是mp3格式。
视频文件一般是有画面有声音的,而画面跟声音原本是分开存在的,因此需要有方案将两者结合起来。而这些结合的方案就是所谓的封转格式。自然,字幕也成了可以加进去的对象。有些封装格式兼容性强,能兼容较多的视频格式和音频格式。
比如一个文件名为“xxxxx.mkv”的文件,其视频格式可以是AVC;AVI;MPEG等格式中的一种,音频格式可以是mp3,aac,flac等格式中的一种,可能还包含着字幕文件。
要说的是,网上的很多文件是以RMVB封装格式传输的。这个格式兼容性差,只支持本家的Real Video系列的视频编码格式。因此很多人因此认为文件的后缀名就是视频的编码格式,这是个误解!
二,各种设备支持的格式:
电脑当然是万能的,只要你硬件条件够,而且装了对应的解码器,就能播放放这些视频。现在的播放软件如暴风影音,QQ影音之类的,内嵌的解码器都基本上全了。
我推荐射手影音播放器,除了播放功能之外无任何其他冗余的附件。万能且干净。
DVD播放器支持面比较窄,一般是VOB封装格式,MPEG1或2的视频格式。
手机:大部分能播放视频手机支持的封装格式是AVI;MP4;3GP。视频格式常见的是Divx;AVC,AVI。音频格式常见的是mp3,aac,flac。性能强的新款手机支持的就比较多。
MP4和所谓的MP5:低端的支持的少,主要的也是AVI;MP4;3GP。高端的支持的多,现在的基本上都是全格式支持了。
还有其他的设备就看说明书吧。
本人从事MP3,MP4相关的工作。别看国产的mp3,mp4这么多,其实用的芯片的技术基本上还是来自国外的,而国外的观念跟我们大不一样,rmvb是没多少人理睬的,因此这些芯片基本上没有默认的支持rmvb的技术。体现在:制作中的安卓系统的产品,AVC等编码视频系统自带支持720P播放,rmvb只能软解码播放480P,1000kbps码率程度的。
rmvb早已落后
三,转换方案。
本人一般用的软件是格式工厂,即不会太复杂,又具有比较强的自定义参数功能。
1,了解你的设备支持什么格式。优先选择mkv或mp4封装格式,AVC视频格式,aac音频格式(一般人对音频要求不太高,可以根据设备支持什么来随意选)。
2,了解你设备的分辨率,分辨率不是越高越好,而是最适合屏幕分辨率最好。
3,了解你设备支持的帧数,范围一般是12帧到30帧。最好选20帧以上。
4,源视频的宽高比不必管,设定好分辨率,在宽高比那里选“自动”就可以保持有效画面的宽高比。比如720P的视频转换为800X480的视频,会自动在上下各加15像素的黑边,保持中间的有效画面宽高比为16:9。
5,分辨率,码率,帧数,二次编码与画面质量及文件体积大小的关系。
码率够高,画质才够好;分辨率高了,码率也得提高,才能保持画面质量;码率越高,最终形成的文件体积越大;帧数影响小;二次编码是以较低码率获得较高画质的关键。
有钱人,存储卡,内存容量大,不在乎文件大小的可以直接设定个高码率,不必启用二次编码。优点是转换速度快,缺点是转换出来的文件体积比较大。
咱是穷人,存储卡容量小,最求性价比,因此我设个较低的码率。启用二次编码,花多一倍的时间。优点是同等画质下转出来的文件体积小,缺点是花的时间多。
想好自己的定位吧,是第一种还是第二种。以上是以对画面质量比较敏感为前提的。
例子:片源是720P的,格式工厂版本为2.60
例一 例二 例三
设备 手机:诺基亚5230 MP5:蓝晨BM566 视频网站高清视频
类型(封转格式) MP4 MKV MP4
视频格式 AVC AVC AVC
屏幕大小 640X360 800X480 640X480
比特率 500 700 600
每秒帧数 30 29.97 20
宽高比 自动 自动 自动
二次编码 是 是 是
音频格式 AAC AAC AAC
采样率 44100 44100 44100
比特率 96 128 96 参考技术A 下个暴风影音支持全部视频格式 参考技术B 你好亲,希望可以帮到你。1.这些都可以的,放心好啦。2.你可以到百度网上去搜索里面有你所需要的视频的。3你也可以下载一个百度影音或是叫硕鼠的软件就可以下载了。如果对亲有用,希望采纳,谢谢你的支持是对我最大的帮助。祝愿亲好运。本回答被提问者和网友采纳
以上是关于android ffmpeg支持rmvb格式吗的主要内容,如果未能解决你的问题,请参考以下文章