专有编解码器

预制构建的NW.js支持专有编解码器

基于Chromium的NW.js , 媒体模块本质上是相同的 .

预制构建的NW.js支持以下编解码器:

theora,vorbis,vp8,pcm_u8,pcm_s16le,pcm_s24le,pcm_f32le,pcm_s16be,pcm_s24be

同时支持demuxers:

ogg,matroska,wav

在NW.js中启用专有编解码器

!!! "许可证和专利费"需知: 使用MP3和H.264编解码器要求您注意专利使用费和源代码许可。如果在应用中需要使用专有媒体格式 , 可以咨询律师了解相关权限内容。有关源代码许可的更多信息,请查看这里

!!! "警告"需知: 如果您没有没有许可证,请根据下列提示或其它解决方案获得编解码器资格:

从社区获取FFmpeg二进制文件

您可以从社区获取预编译FFmpeg二进制文件或按下文自行构建FFmpeg:

脱离NW.js构建FFmpeg的DLL文件

如果您使用的是预制构建的NW.js, 只能够重新构建FFmpeg的DLL文件 , 替换预制构建NW.js中的DLL文件。 该过程需要下载大约1G大小文件以及个i编译约20G大小的NW.js文件 .

第一步: 在 这里下载Chromium定制包. 源文件位于解压后的 ~/<sub-directory-name>目录.

第二步: 因为您未构建整个NW.js, 所以您需要手动获取下列依赖:

download_from_google_storage --no_resume \
                             --platform=<platform> \
                             --no_auth \
                             --bucket chromium-gn \
                             -s buildtools/<os>/<gn-exe>.sha1
- `<platform>`: `win32` 表示 Windows; `darwin` 表示 Mac; `linux*` 表示 Linux
- `<os>`: `win` 表示 Windows; `mac` 表示 Mac; `linux64` 表示 Linux
- `<gn-exe>`: `gn.exe` 表示 Windows; `gn` 表示 Mac 和 Linux
python tools/clang/scripts/update.py --if-needed
python build/linux/sysroot_scripts/install-sysroot.py --running-as-hook
download_from_google_storage --no_resume \
                             --platform=darwin \
                             --no_auth \
                             --bucket chromium-libcpp \
                             -s third_party/libc++-static/libc++.a.sha1

!!! " Linux开发者"需知: 首次构建FFmpeg的DDL文件或者执行下一步之前 , 请先运行 build/install-build-deps.sh 建立FFmpeg DLL 或 NW.js,此脚本将自动为您安装构建依赖项.

第三步: 更换 BUILD.gn

在源代码的根目录中更换 BUILD.gn:

action("dummy") {
  deps = [
    "//third_party/ffmpeg"
  ]
  script = "dummy"
  outputs = ["$target_gen_dir/dummy.txt"]
}

第四步: 利用GN生成 Ninja文件

cd path/to/nw/source/folder
gn gen //out/nw \
 --args='is_debug=false is_component_ffmpeg=true target_cpu="<target_cpu>" is_official_build=true ffmpeg_branding="Chrome"'

注意: <target_cpu> 应设置 x86x64

第五步: 构建 ffmpeg DLL文件

ninja -C out/nw ffmpeg

您可以在 out/nw 中找到DLL. 路径和文件名称因平台而异:

第六步: 用第五步的DLL文件替换NW.js中的DLL. 路径和文件名称因平台而异:

使用专有编解码器构建整个NW.js

如果您不使用官方预制的NW.js,则可以按照以下说明构建启用了专有编解码器的整个NW.js。有关每个步骤的详细信息,请参阅构建NW.js.

第1步: 构建前提并获取 NW.js 源代码. 详细参考构建NW.js文件的 构建前提获取代码 章节

第2步: 配置GN时,将 ffmpeg_branding设置为 Chrome.

第3步: 再次重新生成 ninja 文件.

第4步: 重建 NW.js.