如何使 vlc 支持 fdk-aac 编码windows平台
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使 vlc 支持 fdk-aac 编码windows平台相关的知识,希望对你有一定的参考价值。
参考技术A 可能是由于fdk-aac开源协议的原因,VLC默认是不支持fdk-aac编码的,fdk-aac 是非常优秀的AAC编码库,并且支持AAC-LD AAC-ELD, 对于要求低延迟的场景下很有用。可以通过修改VLC的编译脚本,并加入fdkaac库来使用VLC支持fdkaac编码器。
我是在64位的ubuntu16.04下编译的,vlc的编译方法参考VLC官网的编译文档。
1 修改vlc/extras/package/win32/configure.sh , 加入--enable-fdkaac, 这样VLC就会编译fdkaac这个模块。
执行make,会出现编译错误
as/package/win32/../../../modules/codec/fdkaac.c:56:32: fatal error: fdk-aac/aacenc_lib.h: No such file or directory
这是因为缺少fdk-aac库相关的头文件。
2 编译fdk-aac库
下载源码https://github.com/mstorsjo/fdk-aac.git
在terminal下进入源码目录,输入
mkdir winBuild
cd winBuild
../configure --host=i686-w64-mingw32 --prefix=VLCPATH/contrib/i686-w64-mingw32
make install
VLCPATH 替换成VLC代码的路径
3 编译VLC代码
make packag-win32-zip
这时应该可以编译通过了, 在module/codec/ 目录下会生成libfakaac_plugin.dll文件。
还需要把这个模块依赖的VLCPATH/contrib/i686-w64-mingw32/libfdk-aac-1.dll动态库复制到这个目录下。
现在VLC就可以支持fdk-aac编码了。
在 VLC 上播放 MPEG-DASH
【中文标题】在 VLC 上播放 MPEG-DASH【英文标题】:MPEG-DASH playback on VLC 【发布时间】:2015-08-10 17:14:54 【问题描述】:我看到 VLC 应该从 2.1 版开始支持 MPEG-DASH 播放,但我似乎无法让它播放任何 DASH 内容,无论是在线找到的示例媒体还是我自己编码的视频。我已经在基于浏览器的播放器中成功测试了这些视频清单,但我需要流式传输视频并从没有显示器的计算机收集带宽数据。
当我尝试从命令行流式传输清单时,看起来 vlc 尝试使用 lua 过滤器解析清单(因为文件来自 http,我想),但我在任何地方都没有看到任何提及 DASH ,并且 vlc 无法播放文件。我没有设置测试台,但如果有人愿意,我可以得到详细的输出。
搜索解决方案给我带来了here,但是当我查看版本 2.1.0 的 vlc 源代码(克隆后使用git checkout tags/2.1.0-git
)时,他们提到要更改的行不在他们提到的文件中。任何帮助将不胜感激,这个问题已经困扰我一个多星期了。
【问题讨论】:
【参考方案1】:VLC 正式版 2.2.1 不支持 MPEG-Dash。
我使用了 nightly build 3.0,它支持破折号。
你可以从这里下载:
http://nightlies.videolan.org/.
希望这会有所帮助。
【讨论】:
【参考方案2】:我尝试了 VLC nightly build vlc-3.0.0-git-20151220-0402-win64.7z 版本,它能够播放我正在使用的 mpd 测试文件(*)。以前的 3.x 版本没有播放任何内容。这个版本的画面并不完美,下载新片段时会偶尔闪一下。
http://nightlies.videolan.org/build/win64/last/
(*) mp4(h264,aac) 文件使用实时配置文件虚线。
【讨论】:
以上是关于如何使 vlc 支持 fdk-aac 编码windows平台的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 视频:ffmpeg 编码的 MP4 不在任何浏览器中播放(虽然在 VLC 中播放)