我正在编写一个展示视频点播服务的软件。其中一个功能类似于IIS Smooth Streaming - 我想调整客户端带宽的质量。我的想法是,将单个电影分成多个,比方说 - 2秒部分,以不同的质量,然后发送给客户端并播放它们。关键是,例如,第一部分可以是非常高的质量,第二部分可能非常差(如果带宽看起来很差)。问题是 - 你知道任何允许我精确剪辑电影的软件吗?例如,ffmpeg以连接可见且非常烦人的方式分割电影(秒是精度的度量)。如果重要的话,我会使用qt + phonon作为播放器。或者您可能知道提供此类功能的更好方法,而不将电影分成几部分?
答案 0 :(得分:1)
你确定这是个好主意吗?检查带宽并每两秒切换一次剪辑似乎只允许你在任何给定点缓冲两秒钟,除非客户端有一些神圣的连接,否则它会显得非常跳跃。
如果用户重播视频,播放会如何呢?它会在重放时重新计算质量,还是在流式传输时构建视频文件?
我在流媒体视频方面没有经验,但我看来最常见的是提供商有几种不同质量版本的视频(从极低到高清),他们测试用户的带宽,然后流以适当的质量。
(如果我误解了这个问题,我道歉。)
答案 1 :(得分:1)
你确定 ffmpeg的精确度是几秒钟?以下是手册页的摘录:
-t持续时间
将转码/捕获的视频序列限制为以秒为单位指定的持续时间。
-ss position
以秒为单位寻找给定的时间位置。
-itsoffset offset
以秒为单位设置输入时间偏移。 “[ - ] hh:mm:ss [.xxx]”语法也受支持。此选项会影响其后面的所有输入文件。偏移量将添加到输入文件的时间戳中。指定正偏移意味着相应的流延迟'offset'秒。
看起来它支持高达毫秒级的精度,并且由于大多数视频不是每秒+1000帧,因此这对于准确搜索任何视频流来说都足够精确。