是不是与视频的格式有关呢?
1
loryyang 2016-07-12 16:17:34 +08:00 1
你不会自己试一下?
|
3
hoythan 2016-07-12 16:24:50 +08:00 1
你试试视频拷贝到一半的是否 暂停拷贝,然后打开这个文件看看能不能播放.
|
4
mrytsr 2016-07-12 16:27:34 +08:00 via Android 1
ffmpeg
|
7
cxlxkin 2016-07-12 16:33:58 +08:00 1
我觉得不可以直接解压不了吧
|
8
xujif 2016-07-12 16:37:01 +08:00 1
rar 这些压缩应该是类似于哈夫曼编码这种吧,第一个包很重要,保存着 metadata 信息,不然无法解压。
当然。以上都是胡诌的,我也没看过 rar 实现方式 |
9
bingowrt OP @cxlxkin 是的,所以我自己就回答不了这个问题了,但是分卷的信息还在这里,是否使用不那么复杂的手段就能从这个分卷里面提取出来其中所含有的视频信息呢?
|
10
bingowrt OP @hoythan 可是我这里讨论的问题是,一个分卷是否可以独立的提取出部分的信息,如果已经有了部分的视频信息,那当然是可以播放的啊。
|
12
maskerTUI 2016-07-12 16:46:47 +08:00 via Android
理论上是不能的,要么解压的时候缺少其它分卷报错,要么解压出来的视频不完整播放器报错。
|
13
bingowrt OP |
15
justfly 2016-07-12 17:02:58 +08:00 1
关键在于视频在多个 RAR 中是否是顺序存储的 可以查查他的实现
|
16
winterbells 2016-07-12 17:04:02 +08:00
自己为什么不能试一下呢?
随便找了个视频,三种压缩 rar 、 rar5 、 zip 删除最后一个分卷,解压到桌面 前两种都会在桌面先创建文件但无法播放。 zip 压缩没有看到解压的文件 |
17
winterbells 2016-07-12 17:12:58 +08:00
##又做了个测试
1. 源文件大小是 142M ,设置分卷大小为 280M ,添加 100%恢复记录 压缩,删除 10.2M 大小的二卷 解压到桌面,无法播放 2. 设置压缩方式为存储,删除分卷,还行不能 |
18
shakoon 2016-07-12 17:27:54 +08:00 1
获得视频文件中间的一部分,是可以播放的,与视频格式无关(亲测过 rmvb 、 avi 、 mkv )。但是楼主的问题在于,这一部分文件是存在于一个压缩包分卷中,常规手段是无法只解压这一部分视频出来的。比较可行(未经验证)的一个思路,只能是研究 rar 算法(不知道是否公开)对于分卷文件的分割实现方式,以及 rar 文件头的结构,然后用十六进制编辑器重写这个分卷的头,让 winrar 将其识别为一个独立压缩包然后解压。
|
19
fcicq 2016-07-12 18:40:12 +08:00 1
应该是前面连续的分卷存在的话可以解出最前面的部分. rar 不是流压缩 (待确认).
|
21
bingowrt OP @winterbells 感谢你的回复,然而我认为,你的实验方法有待商榷,你的实验结果只能说明,程序报错,而不能说明信息是否还在,这也是我没有使用这种实验方法的原因。
|
22
winterbells 2016-07-12 19:22:42 +08:00
@bingowrt 你说的也有道理,不过想知道到底是什么情况的话应该得查压缩原理
我以为这样就能满足你的好奇心... |
23
zi 2016-07-12 19:45:13 +08:00 1
不了解 rar 的算法,不过以前解压分卷的时候注意到 rar 不是按分卷顺序解压的,而是这个卷拿一点那个卷拿一点
所以我猜测就算能解压单个分卷,解压出来的视频也不会是原视频的某个连续片段 |
24
xbb7766 2016-07-12 19:48:08 +08:00 via Android 1
就算只有一个分卷,该分卷包含的数据应该是可以正确还原的。
一般常见影响视频播放的因素是文件头。 唯一我确定的是, mpeg ps/ts (*.ts ,* .mpg 等) 这种流格式,随便从当中掐一段也能播放。 Mp4 mkv 这类格式,文件头里有 metadata 等数据,如果缺了文件头,就比较麻烦。 |
25
xbb7766 2016-07-12 19:51:09 +08:00 via Android
对了楼上还有说到的顺序解压,我记得 zip 如果是 store 形式打包,解压应该是顺序的。 rar 不知道用 store 是不是也这样。
|
26
chiv2 2016-07-12 21:12:06 +08:00
有时可以的。以前电驴下比较大的动作片时经常只下第一个 rar 包,打开播放看看是不是封面杀手再决定是否继续下载。我用的是 mac 上的 unrarx 和 the unarchiver, 解压不完全 rar 包时会提示是否保留已解压的部分文件。一般解出来就可以用 mplayerx 放了,格式没啥印象了,好像 mkv 比较多。
|
27
ji1043 2016-07-12 21:18:51 +08:00
我认为 可能的, 估计跟 压缩格式 与 视频格式有很大的关系 楼上不成功, 简单的举例就是 迅雷啊,下载视频的时候,在没有下载完成的时候( bt 种子 不是那种 完成度百分之 99 的), 我使用 QQ 影音播放器是可以 播放一部分内容的,当然并不是 所有的 视频临时文件都可以播放。。。
|
28
shimanooo 2016-07-12 21:45:47 +08:00
命令行 unrar -kb e xxx.rar 可以“ Keep broken extracted files ”
能不能放看视频格式。 |
29
MinonHeart 2016-07-12 22:17:58 +08:00 via iPhone
分卷本身就是信息的集合体,所以是可以提取出部分信息的。但是并不简单,一是对损害的分卷进行正常解压是比较困难的,另外是为了提高压缩率,压缩后的分卷内,存储的内容通常是不连续的,如果部分分卷被解包了,通常解包后的信息还要经过分析才能使用,并不具有正常的使用价值。而分析难度根据获得分卷的比率成正相关。
楼上说的迅雷下视频这种是属于连续切割的文件,所以就算不完整,只要有元信息也是可以播放一部分的。但是压缩并不是连续切割。 压缩中有种叫打包,即不压缩文件直接打个包,这种应该是连续切割文件,毕竟连续切割比较快,这种和迅雷下载比较像,但是要过解包那一关才能得倒信息。 比如压缩 1221 ,如果分成两卷,可能第一卷是 2-1 ,第二卷是 2-2 。而连续切割成两卷可能分别是 122 和 1 。如果内容不具有压缩性,那就等同于打包了,比如压缩 1234 (这里只是举个例子,因为压缩是跟编码有关的,所以并完全不相同的字符也是有可能被压缩的,这是时间换空间的做法, WinRAR 中的压缩率是可选的,大概就是这个意思) 随便说说,不是完全正确 |
30
Bardon 2016-07-12 23:00:02 +08:00
总结,任何一个分卷都包含部分视频内容,这一点是肯定的。
好了,回答了楼主的问题了。至于能不能播放,这跟压缩算法有关。 |
31
honeycomb 2016-07-12 23:14:35 +08:00 via Android
ts 等为流媒体优化的容器没问题,部分解压后可以直接播放,但是有的容器,如 AVI 就需要额外的修复步骤
|
32
lslqtz 2016-07-13 07:57:58 +08:00
除非加密,否则应该会保留信息。
|
33
dlllcs 2016-07-13 10:50:03 +08:00
感觉视频目前的压缩算法都不错了,再次压缩得到的压缩比不会很高,还不如尝试转换编码(优化后可提高压缩率),然后分割片段这样来的痛快,而且随意一个片段都可以正常播放
|