2015.10.22
开始提出MPEG_DASH dynamic adaptive streaming over http
DASH——RTMP(flash)——HLS(Apple,用于移动端较多)——HDS(Adobe)——MSS(微软)自适应码率
flv,mp4,3gpp/mp4(dash),mpeg-ts(hls)
dash:一个mpd文件和文件片段
开发语言:js
开发工具:Node.js (tibao 说他们开发H5用的webstorm啊)
参考文档:https://github.com/Dash-Industry-Forum/dash.js
node及npm安装:
http://nodejs.cn/ Windows下载msi文件安装即可
http://nodejs.org/download/ 下载安装文件
在mac上下载pkg文件
node及npm卸载:(mac)
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
2015.10.23
基于安装node.js的前提,安装Grunt http://gruntjs.com/plugins
操作步骤:
http://www.cnblogs.com/yexiaochai/p/3603389.html
1. cmd调出Dos命令行
检验node –v
npm -v
2. 输入:npm install –g grunt –cli
此时会安装grunt,应该会在环境变量中添加全局变量,grunt命令不被识别
将npm安装目录下的node_modules文件夹、grunt、grunt.cmd复制到工作目录
3. 输入:npm install
必须要有package.json和GruntFile.js文件
输入:npm install grunt-contrib-watch
npm installgrunt-contrib-jshint
npm installgrunt-contrib-uglify
貌似有网络错误,重新输入命令安装即可
npm installgrunt-contrib-qunit (这个要安装比较久)
npm installgrunt-contrib-concat
npm installgrunt-contrib-clean
npm installgrunt-contrib-copy
npm installgrunt-contrib-cssmin (下载了所有标注星号的)
npm installgrunt-contrib-connect 安装这个居然出现了不断刷屏的ERROR LOG,后来提示Callback called more than once. 停止刷屏后重新安装即可
-------------------分割线,以上是看dash开源项目,并没有部署成功-----------------------
后来下载了bemTV的hlsp2p开源项目,决定一定要看下,额,又是NodeJS
1.npm install下载错误
2.安装在D盘的nodeJS依赖库,在E盘可以使用吗???????暂时不知道
3. 直接运行npm test,提示gulp不是内部或外部命令,额,好吧,我并没有安装gulp
npm install -g gulp 全局安装gulp
在指定项目目录下局部安装gulp, npm install gulp
然而仍旧提示“gulp不是内部或外部命令”
命令行输入“npm root -g" ,输出 C:\Users\dell\AppData\Roaming\npm\node_modules
已设置用户环境变量中的PATH=C:\Users\dell\AppData\Roaming\npm\node_modules,NODE_PATH=C:\Users\dell\AppData\Roaming\npm\node_modules
系统环境变量中的Path =D:\Program Files\nodejs
为神马???
4.改换mac osx
需要使用sudo安装命令,否则会提示权限错误
直接输入npm install会提示出错,error: no member named "Use" in namespace....之类的错误
需要使用最新的npm版本,安装命令为 sudo npm install npm-check-updates -g
-----------------------------problems
1.mac上编译提示缺少underscore模块,但实际上存在啊
Uncaught Error: Cannot find module 'underscore'
at /Users/youku/bemtv/clappr-p2phls-plugin/2e323baca1b7f5eb112ea5556a2f7db055a7bd34.browserify:1 <- node_modules/browserify/node_modules/browser-pack/_prelude.js:1:0
使用node 4.2.6编译时,出现如下错误:
In file included from ../binding.cpp:1:
../node_modules/nan/nan.h:189:68: error: too many arguments to function call,
expected at most 2, have 4
return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:4675:3: note:'New' declared here
static Local<Signature> New(
^
In file included from ../binding.cpp:1:
../node_modules/nan/nan.h:271:3: error: redefinition of 'NanNew'
NanNew<v8::StringObject, v8::Handle<v8::String> >(
^
../node_modules/nan/nan.h:264:3: note: previous definition is here
NanNew<v8::StringObject, v8::Local<v8::String> >(
^
../node_modules/nan/nan.h:289:36: error: redefinition of 'NanNew'
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:283:36: note: previous definition is here
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:301:36: error: redefinition of 'NanNew'
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:295:36: note: previous definition is here
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:481:19: error: no type named
'ExternalAsciiStringResource' in 'v8::String'; did you mean
'ExternalStringResource'?
v8::String::ExternalAsciiStringResource *resource) {
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
ExternalStringResource
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:2210:19: note:
'ExternalStringResource' declared here
class V8_EXPORT ExternalStringResource
^
In file included from ../binding.cpp:1:
../node_modules/nan/nan.h:480:36: error: redefinition of 'NanNew'
NAN_INLINE v8::Local<v8::String> NanNew(
^
../node_modules/nan/nan.h:475:36: note: previous definition is here
NAN_INLINE v8::Local<v8::String> NanNew(
^
../node_modules/nan/nan.h:495:27: error: redefinition of '_NanEscapeScopeHelper'
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:490:27: note: previous definition is here
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Handle<T> val) {
^
../node_modules/nan/nan.h:511:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Primitive]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:516:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::Null(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Primitive]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:521:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Boolean]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:526:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::False(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Boolean]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:755:13: error: no member named 'smalloc' in namespace
'node'
, node::smalloc::FreeCallback callback
~~~~~~^
../node_modules/nan/nan.h:766:12: error: no matching function for call to 'New'
return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
^~~~~~~~~~~~~~~~~
/Users/youku/.node-gyp/4.2.6/include/node/node_buffer.h:31:40: note:candidate
function not viable: no known conversion from 'uint32_t'
(aka 'unsigned int') to 'enum encoding' for 3rd argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
/Users/youku/.node-gyp/4.2.6/include/node/node_buffer.h:43:40: note:candidate
function not viable: 2nd argument ('const char *') would lose const
qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
/Users/youku/.node-gyp/4.2.6/include/node/node_buffer.h:28:40: note:candidate
function not viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
^
/Users/youku/.node-gyp/4.2.6/include/node/node_buffer.h:36:40: note:candidate
function not viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
In file included from ../binding.cpp:1:
../node_modules/nan/nan.h:770:12: error: no viable conversion from
'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'
return node::Buffer::New(v8::Isolate::GetCurrent(), size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:210:7: note:candidate
constructor (the implicit copy constructor) not viable: no known
conversion from 'v8::MaybeLocal<v8::Object>' to 'const
v8::Local<v8::Object> &' for 1st argument
class Local {
^
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:210:7: note:candidate
constructor (the implicit move constructor) not viable: no known
conversion from 'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object> &&'
for 1st argument
class Local {
^
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:214:13: note:candidate template
ignored: could not match 'Local' against 'MaybeLocal'
V8_INLINE Local(Local<S> that)
^
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:326:13: note:candidate template
ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'
V8_INLINE Local(S* that)
^
In file included from ../binding.cpp:1:
../node_modules/nan/nan.h:777:26: error: no member named 'Use' in namespace
'node::Buffer'
return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
~~~~~~~~~~~~~~^
../node_modules/nan/nan.h:1809:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Function]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:1824:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(node::MakeCallback(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Value]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:1897:12: error: no matching function for call to
'_NanEscapeScopeHelper'
return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:499:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:495:27: note: candidate template ignored: substitution
failure [with T = v8::Object]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:2103:12: error: no member named 'IsExternalAscii' in
'v8::String'; did you mean 'IsExternal'?
if (str->IsExternalAscii()) {
^~~~~~~~~~~~~~~
IsExternal
/Users/youku/.node-gyp/4.2.6/include/node/v8.h:2174:8: note:'IsExternal'
declared here
bool IsExternal() const;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/binding/binding.o] Error 1
gyp ERR!build error
gyp ERR!stack Error: `make` failed with exit code: 2
gyp ERR!stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR!stack at emitTwo (events.js:87:13)
gyp ERR!stack at ChildProcess.emit (events.js:172:7)
gyp ERR!stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR!System Darwin 14.1.1
gyp ERR!command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR!cwd /Users/youku/bemtv2/clappr-p2phls-plugin/node_modules/gulp-sass/node_modules/node-sass
gyp ERR!node -v v4.2.6
gyp ERR!node-gyp -v v3.0.3
gyp ERR!not ok
Build failed
npm ERR! Darwin 14.1.1
npm ERR!argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR!node v4.2.6
npm ERR!npm v2.14.12
npm ERR!code ELIFECYCLE
npm ERR! [email protected] install: `node build.js`
使用node 0.10.34编译时,出现 TypeError Object:keys called on non-object
使用node 0.12.8编译时,修改了package.json中指定的module版本,但出现以下错误提示,安装失败
shasum check failed for /tmp/npm-507-53887596/registry.npmjs.org/ruglify/-/ruglify-1.0.0.tgz