我刚从网络编程的考试中回到家,他们问我们的一个问题是"如果要播放视频,你会使用TCP还是UDP?为存储的视频和实时视频流提供解释".对于这个问题,他们只是简单地期望存储视频的TCP简短回答和实时视频的UDP,但我在回家的路上想到了这一点,并且使用UDP流媒体直播视频一定更好吗?我的意思是,如果你有足够的带宽,并说你正在播放足球比赛或音乐会,你真的需要使用UDP吗?
让我们说,当你正在流式音乐会或使用TCP的任何东西时,你开始丢失数据包(在你和发送者之间的某些网络中发生了一些不好的事情),并且整整一分钟你都没有得到任何数据包.视频流将暂停,一分钟后,数据包开始再次通过(IP为您找到了新的路由).然后会发生什么是TCP会在您丢失的那一刻重新传输并继续向您发送实时流.假设带宽高于流上的比特率,并且ping不是太高,所以在很短的时间内,丢失的那一分钟将作为流的缓冲区,这样,如果再次发生丢包,您将不会注意到.
现在,我可以想到一些设备,这不是一个好主意,例如视频会议,你需要总是在流的末尾,因为视频聊天期间的延迟是可怕的,但在足球比赛或音乐会期间,如果你在流后面一分钟,这有什么关系?此外,您可以保证获得所有数据,最好保存以供日后查看,而不会出现任何错误.
所以这让我想到了我的问题.关于使用TCP进行直播,我不知道有什么缺点吗?或者它应该真的是,如果你有它的带宽你应该去TCP,因为它对网络"更好"(流量控制)?
有许多教程和内容展示了如何使用ffmpeg从视频中提取多个屏幕截图.你设置-r,你甚至可以开始一定数量的.
但我只想要1个屏幕截图,比如01:23:45 in.或者1个屏幕截图,86%in.
这对ffmpegthumbnailer来说是可能的,但它是我不想依赖的另一个依赖.我希望能够用ffmpeg做到这一点.
我收到错误消息..
未捕获(在promise中)DOMException:play()失败,因为用户没有先与文档交互.
..当尝试使用Chrome版本66在桌面上播放视频时.
我找到了一个在网站上自动开始播放的广告,但使用以下HTML:
<video
title="Advertisement"
webkit-playsinline="true"
playsinline="true"
style="background-color: rgb(0, 0, 0); position: absolute; width: 640px; height: 360px;"
src="http://ds.serving-sys.com/BurstingRes/Site-2500/Type-16/1ff26f6a-aa27-4b30-a264-df2173c79623.mp4"
autoplay=""></video>
Run Code Online (Sandbox Code Playgroud)
那么,绕过Chrome的V66的自动播放拦截真的那么容易,因为只需添加webkit-playsinline="true",playsinline="true"和autoplay=""属性的<video>元素?对此有任何负面影响吗?
我希望将视频放在HTML5页面中,该页面将在页面加载时开始播放,一旦完成,就会循环回到开头而不会中断.视频也应该不具有任何相关的控制,以及或者是兼容所有"现代"的浏览器,或有填充工具的选项.
以前我会通过Flash和我这样做FLVPlayback,但我宁愿Flash在HTML5领域避开.我想我可以使用javascript setTimeout创建一个平滑的循环,但我应该用什么来嵌入视频本身?那里有什么东西会以这种方式传输视频FLVPlayback吗?
使用Node.js处理将视频文件流式传输到html5视频播放器的正确方法是什么,以便视频控件继续工作?
我认为这与处理标题的方式有关.无论如何,这是背景信息.代码有点冗长,但是,它非常简单.
我学会了如何轻松地将小视频文件流式传输到HTML5视频播放器.通过这种设置,控件在我无需任何工作的情况下工作,视频流完美无瑕.此处提供了包含示例视频的完整工作代码的工作副本,可在Google Docs上下载.
客户:
<html>
<title>Welcome</title>
<body>
<video controls>
<source src="movie.mp4" type="video/mp4"/>
<source src="movie.webm" type="video/webm"/>
<source src="movie.ogg" type="video/ogg"/>
<!-- fallback -->
Your browser does not support the <code>video</code> element.
</video>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
服务器:
// Declare Vars & Read Files
var fs = require('fs'),
http = require('http'),
url = require('url'),
path = require('path');
var movie_webm, movie_mp4, movie_ogg;
// ... [snip] ... (Read index page)
fs.readFile(path.resolve(__dirname,"movie.mp4"), function …Run Code Online (Sandbox Code Playgroud) 我已经在网上搜索了一段时间,为C#/ .NET提供了一个可靠的 FFmpeg包装器.但我还没有想出一些有用的东西.我发现了以下三个项目,但是所有这些项目都在早期的alpha阶段就已经死了.
FFmpeg.NET
ffmpeg-sharp
FFLIB.NET
所以我的问题是,是否有人知道更成熟的包装项目?
我不是在寻找带有工作队列等的完整转码引擎.只是一个简单的包装器,所以我不必进行命令行调用,然后解析控制台输出,但可以进行方法调用并使用eventlisteners进行操作.
请随意提及任何活跃的项目,即使它们在早期阶段仍然存在.
我想实现以下目标.
<video src="file:///Users/username/folder/video.webm">
</video>
Run Code Online (Sandbox Code Playgroud)
目的是用户将能够从他/她的硬盘驱动器中选择文件.
不上传的原因当然是传输成本和存储配额.没有理由保存文件.
可能吗?
如何YouTube在我的应用程序中播放视频?我希望play video直接从YouTube流式播放,无需下载.此外,在播放视频时,我想提供菜单选项.我不想使用默认意图播放视频.我怎样才能做到这一点?
我创建了一个HTML5视频播放器(非常简单),可以在iPad和浏览器上完美运行.
然而,当我在iPhone上打开它时,我只得到一个播放按钮,当按下该按钮时,在我的所有东西之上打开一个新窗口上的原生视频播放器.
这意味着我无法访问我的自定义控件和时间跟踪(用Javascript编写),因为视频现在正在运行.
有没有办法覆盖苹果对iphone上的HTML5视频的控制,让它像在ipad上一样工作?
干杯
我正在尝试设置一个非常基本的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) video ×10
html5 ×5
html5-video ×3
ffmpeg ×2
javascript ×2
.net ×1
android ×1
c# ×1
ipad ×1
iphone ×1
large-files ×1
networking ×1
node.js ×1
offline ×1
playback ×1
streaming ×1
tcp ×1
udp ×1
youtube ×1