Building ffmpeg form nwjs/chromium repository
-
Open VS2013 x64 Native Tools Command Prompt C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
-
Open C:\cygwin64\Cygwin.bat in VS2013 x64 Native Tools Command Prompt and make sure that compiler and linker are refering to VS2013 64 bit executables as shown below.[Assuming you have cygwin installed on your Windows machine]
- Set following environment variables
set GYP_DEFINES=host_arch=x64 target_arch=x64 nwjs_sdk=1 disable_nacl=0 proprietary_codecs=1 branding=Chrome
- Go to Ffmpeg source code location :
<node-webkit-dir>\src\third_party\ffmpeg
- [APPLY PATCH to file ]
/chromium/scripts/build_ffmpeg.py
Add support of mxf by enabling it as decoder, demuxer and parser
- '--enable-decoder=pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw',
- '--enable-demuxer=ogg,matroska,wav',
- '--enable-parser=opus,vp3,vorbis,vp8',
+ '--enable-decoder=pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw,mxf',
+ '--enable-demuxer=ogg,matroska,wav,mxf',
+ '--enable-parser=opus,vp3,vorbis,vp8,mxf',
- [APPLY PATCH to file ] :
/chromium/scripts/build_ffmpeg.py
Add support of mxf by enabling it as decoder, demuxer and parser
['chromeos == 1', {
'ffmpeg_branding%': '<(branding)OS',
}, { # otherwise, assume Chrome/Chromium.
- 'ffmpeg_branding%': '<(branding)',
+ 'ffmpeg_branding%': 'Chrome',
}],
],
- Build standalone ffmpeg code for windows 64 bit.
-
Build will generate following directory build.x64.win
folder. -
Copy config and from build.x64.win:
ffmpeg_src>./chromium/scripts/copy_config.sh
Regenerate ffmpeg gyp files :
ffmpeg_src>python chromium/scripts/generate_gyp.py
Following files get modified after running above commands:
- Force nwjs(chromium) to regenerate ninja files for modified *.h, *.asm, *.gypi (see previous step): Go to nwjs source code location : /node-webkit/src
src>gclientrunhook–force
- Build ffmpeg code using ninja to generate ffmpegsumo.dll:
src>ninja -C out/Debug_x64 ffmpegsumo-j16
- Build nwjs code using ninja and link to ffmpegsumo.dll:
src>ninja -C out/Debug_x64 nw -j16
Written on February 28, 2016