我已经看到很多关于如何将视频从服务器流式传输到Android设备的信息,但其他方式并不多,ala Qik.有人能指出我在这方面的正确方向,或者就如何处理这个问题给我一些建议?
我真的很难理解使用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) 我正在构建一个Web应用程序,它应该从服务器http://lscube.org/projects/feng回放RTSP/RTP流.
HTML5视频/音频标签是否支持rtsp或rtp?如果没有,最简单的解决方案是什么?也许下载到VLC插件或类似的东西.
我已经在互联网上搜索了几天如何通过WiFi连接从Android手机到另一个Android手机实现视频流功能,但我似乎找不到任何有用的东西.我看了Android开发人员的示例代码,stackoverflow,谷歌,Android博客,但没有.我能找到的是用于流媒体的某种电话到桌面或桌面到电话的解决方案,但我在实现中无需借用.
我需要使用arduino ADK控制机器人,因此我使用2个电话,一个将安装在机器人上,另一个将接收来自机器人的视频流.我提到这个是因为我试图在广播时间和观看时间之间实现最小的延迟.
我正在编写2个应用程序,一个用于控制机器人的主应用程序(来自手持电话),它将控制从属应用程序并接收流,以及第二个从应用程序,它将在机器人绑定的手机上运行,控制电机/执行器/流媒体到主应用程序.不幸的是,我不能使用第三方应用程序.我需要将视频流代码集成到我的2个应用程序中.
实现这一目标有哪些选择?这也很难做到,因为我从未使用过视频流,我在Java和Android开发方面做得非常好.我应该如何编码/解码流,如何启动连接,是否需要使用UDP而不是TCP/IP?我真的不知道从哪里开始,没有任何示例代码.我很确定这可以实现.我找不到任何有用的东西让我开始朝着正确的方向前进.
我偶然发现spydroid, 但它在桌面上使用VLC,所以对我没有好处.
编辑:查看Cagney Moreau的博客.他详细介绍了如何实现这一点.
使用RESTful服务,您可以创建,读取,更新和删除资源.当你处理像数据库资产这样的事情时,这一切都很有效 - 但这又如何转化为流数据呢?(或者是吗?)例如,在视频的情况下,将每个帧视为我应该一次查询一个资源的资源似乎很愚蠢.相反,我会设置套接字连接并流式传输一系列帧.但这会打破RESTful范式吗?如果我想能够快退或快进流怎么办?这是RESTful范式内的可能吗?那么:流媒体资源如何适应RESTful范式?
作为一个实施问题,我正准备创建这样的流数据服务,我想确保我这样做是"最好的方式".我相信这个问题以前已经解决了.有人能指出我的好材料吗?
我有一个浏览器游戏,我最近开始在游戏中添加音频.
Chrome不会加载整个页面并且卡住"91 requests | 8.1 MB transferred"并且不会加载任何更多内容,甚至会在所有其他标签中对网站进行制动Waiting for available socket.
5分钟后(确切地)加载数据.


这不会发生在任何其他浏览器上.
删除一个MP3文件(最新添加的一个)修复了问题,所以我猜它是一个数据限制问题?
我想知道在流媒体视频方面它们之间是否存在差异.
我知道VideoView可以用于流媒体和什么是Mediaplayer?据我所知,MediaPlayer可以做同样的事情VideoView吗?
任何人都可以给我答案吗?
如果我想通过使用RTSP到服务器从服务器流式传输视频,我应该从哪个开始?VideoView还是MediaPlayer?
有什么建议吗?
我正在尝试使用MPMoviePlayerController传输一些youTube视频,但我遇到了一些问题.我正在使用的代码非常简单,我可以通过将URL传递给initWithContentURL来播放.m4v视频.当我启动电影播放器时,播放器出现但在大约20秒后消失.当我在模拟器中尝试它时,我得到一个警告视图,说明服务器配置不正确.我是否需要通过URL传递来自谷歌的特定类型的视频源?
NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer play];
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下网址 http://www.youtube.com/watch?v=HGd9qAfpZio
我也看到了参数&format = 1并尝试将其添加到两个字符串的末尾,但没有运气.
我正在尝试设置一个非常基本的html5页面来加载一个20MB的.mp4视频.看起来浏览器需要下载整个内容而不是仅仅播放视频的第一部分和其他内容的流媒体.
这篇文章是我在搜索时发现的最接近的东西......我尝试过Hand Brake和Data Go Round,但两者似乎没有什么区别:
关于如何做到这一点或有可能的任何想法?
这是我正在使用的代码:
<video controls="controls">
<source src="/video.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
Run Code Online (Sandbox Code Playgroud)