小编Uni*_*ity的帖子

实时HTTP流式传输到HTML5视频客户端的最佳方法

我真的很难理解使用node.js将ffmpeg的实时输出流式传输到HTML5客户端的最佳方法,因为有很多变量在起作用,我在这个领域没有很多经验,花了很多时间尝试不同的组合.

我的用例是:

1)IP视频摄像机RTSP H.264流由FFMPEG拾取并使用节点中的以下FFMPEG设置重新转换为mp4容器,输出到STDOUT.这仅在初始客户端连接上运行,因此部分内容请求不会再次尝试生成FFMPEG.

liveFFMPEG = child_process.spawn("ffmpeg", [
                "-i", "rtsp://admin:12345@192.168.1.234:554" , "-vcodec", "copy", "-f",
                "mp4", "-reset_timestamps", "1", "-movflags", "frag_keyframe+empty_moov", 
                "-"   // output to stdout
                ],  {detached: false});
Run Code Online (Sandbox Code Playgroud)

2)我使用节点http服务器捕获STDOUT并在客户端请求时将其流回客户端.当客户端第一次连接时,我生成上面的FFMPEG命令行,然后将STDOUT流传递给HTTP响应.

liveFFMPEG.stdout.pipe(resp);
Run Code Online (Sandbox Code Playgroud)

我还使用了流事件将FFMPEG数据写入HTTP响应,但没有任何区别

xliveFFMPEG.stdout.on("data",function(data) {
        resp.write(data);
}
Run Code Online (Sandbox Code Playgroud)

我使用以下HTTP标头(在流式传输预先录制的文件时也使用并工作)

var total = 999999999         // fake a large file
var partialstart = 0
var partialend = total - 1

if (range !== undefined) {
    var parts = range.replace(/bytes=/, "").split("-"); 
    var partialstart = parts[0]; 
    var partialend = parts[1];
} 

var start = parseInt(partialstart, 10); 
var end …
Run Code Online (Sandbox Code Playgroud)

streaming html5 ffmpeg node.js

204
推荐指数
5
解决办法
19万
查看次数

JNI将jstring转换为char*

jstring通过使用JNI 将URL字符串从Java传递到C代码作为数据类型.我的库方法需要一个char *url.

我如何转换jstringchar *

PS:在C中使用jcharArray有什么好处吗?(即char []在本机方法中传递而不是字符串)

java java-native-interface

109
推荐指数
2
解决办法
11万
查看次数

Java2D:增加线宽

我想增加Line2D的宽度.我找不到任何方法来做到这一点.我是否需要为此目的制作一个小矩形?

java graphics swing java-2d

75
推荐指数
2
解决办法
13万
查看次数

Java - 获取JVM中加载的所有类的列表

我想得到一个属于某个包的所有类的列表以及他们所有的孩子.这些类可能已经加载,也可能没有加载到JVM中.

java reflection jvm

65
推荐指数
7
解决办法
9万
查看次数

检查条件是否为假

这似乎是一个简单的问题,我想知道为什么谷歌搜索没有提供任何帮助 - 也不是在StackOverflow,也不是在教程中.我只需要使用bash检查条件是否为假.

我发现我试过的

if ! [ 0==2 ]; then echo Hello; fi
Run Code Online (Sandbox Code Playgroud)

if [ ! 0==2 ]; then echo Hello; fi 
Run Code Online (Sandbox Code Playgroud)

他们都没有打印Hello.

我发现只有两个类似的问题,但两种情况下的最终答案都是重组代码,不使用"错误"条件.

unix linux bash shell conditional-statements

37
推荐指数
2
解决办法
6万
查看次数

如何从Google Play开发者控制台删除暂停的应用?

我已将应用程序上传到Google Play商店,但由于某些内容违反了内容政策中的假冒或欺骗行为规定,应用程序已暂停在Google Play商店中.在谷歌控制台中,我可以看到如下截图在此输入图像描述

在此输入图像描述

现在我的问题是如何从开发人员控制台中删除此项目?我不想在我的开发者控制台中看到暂停的应用程序.

android suspend google-play

17
推荐指数
4
解决办法
2万
查看次数

如何设置字符串的颜色

有谁知道我将如何设置将使用打印的字符串的颜色System.out
这是我目前的代码:

System.out.println("TEXT THAT NEEDS TO BE A DIFFERENT COLOR.");
Run Code Online (Sandbox Code Playgroud)

java colors system.out

16
推荐指数
3
解决办法
16万
查看次数

jQuery跨域Ajax

我的ajax代码是

$.ajax({
    type: 'GET',
    dataType: "jsonp",
    processData: false,
    crossDomain: true,
    jsonp: false,
    url: "http://someotherdomain.com/service.svc",
    success: function (responseData, textStatus, jqXHR) {
        console.log("in");
    },
    error: function (responseData, textStatus, errorThrown) {
        alert('POST failed.');
    }
});
Run Code Online (Sandbox Code Playgroud)

这是一个跨域的ajax请求.

我得到了正确的请求响应,同时用firebug检查我可以看到响应.

这是我在firebug响应中以及通过Web浏览器访问此URL时的响应

{"AuthenticateUserResult":"{\"PKPersonId\":1234,\"Salutation\":null,\"FirstName\":\"Miqdad\",\"LastName\":\"Kumar\",\"Designation\":null,\"Profile\":\"\",\"PhotoPath\":\"\/UploadFiles\/\"}"}
Run Code Online (Sandbox Code Playgroud)

但我收到了错误

SyntaxError: invalid label

{"AuthenticateUserResult":"{\"PKPersonId\":8970,\"Salutation\
Run Code Online (Sandbox Code Playgroud)

我是否需要使用任何其他方法来使其工作.我想在phonegap + jquery移动应用程序中实现这一点.

此外,我没有任何访问Web服务的权限

如果我禁用Chrome网络安全,它工作正常

ajax jquery json jquery-mobile cordova

14
推荐指数
2
解决办法
10万
查看次数

为什么我们不能覆盖静态和最终方法?

我试图理解为什么我们不能覆盖静态和最终方法.我没有得到它背后的目的.

java

12
推荐指数
3
解决办法
4万
查看次数

如何使用MutationObserver?

我最近遇到了这个很棒的MutationObserver功能,它可以跟踪任何dom元素的变化.我使用了mozilla开发人员网络上显示的代码,但似乎无法使其运行.这是我使用的代码(链接):

   // create an observer instance
var target = document.querySelector('#something');
console.log(target);
var observer = new WebKitMutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
      console.log("Success");
        //$('#log').text('input text changed: "' + target.text() + '"');
        //console.log(mutation, mutation.type);
    });    
});
observer.observe(target, { attributes: true, childList: true, characterData: true });
//observer.disconnect(); - to stop observing

// test case
setInterval(function(){
    document.querySelector('#something').innerHTML = Math.random();
},1000);
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎不起作用.但是,如果我用一些jQuery修改相同的代码,一切似乎都很好(这里是演示).有没有我在文档中遗漏的东西,或者我只是误解了观察者的特征.

javascript mutation-observers

12
推荐指数
1
解决办法
6488
查看次数