2012-10-19 41 views
4

我前段时间下载了一些flv视频,当观看它们时,他们停在某一点。如果我跳过这一点上,他们继续打细,直到另一点,我可以再次跳过(和循环下去,直到视频结束)修复早期停止的flv文件

我已经尝试过

avconv -i input.flv -acodec copy -vcodec copy -g 1 output.flv

根据我的理解,通过阅读关于此问题的大多数无用帖子,我的元数据中没有任何关键帧,然后在出现坏帧时停止。

我试着设置-g较高,但在相同的点与原始文件停止首次哪里output.flv停止。有没有任何工具可以解决这个问题。

我不记得原来的链接定位和重新下载不是一个选项,你可以看到我重新编码的尝试已经失败。

我使用Linux操作系统Ubuntu,所以我不能使用Windows工具可用。

编辑

奋斗了很多之后,我依然没有能够修复文件。

我假设MetaData是问题,我错了。在尝试了一系列工具后,我发现它们大多数都是以文件结尾(在文件中间)停止的。

元数据是它应该是。 (我成功提取了它)。看来这些溪流是腐败的。我试图重新合并,重新编码注入元数据他们没有工作他们生产的文件,仍然卡住在同一地点或简单的流直到坏点。

我的问题是由于上市这里如出一辙:link

任何帮助将不胜感激。即使我必须使用十六进制编辑器来分割一些文件,我也会采取任何解决方案。 (我试图消除我虽然是坏的位,但导致它根本无法播放)

我有一个Windows机器在我手上现在这样运行的Windows实用程序是没有问题的了。

+0

玩什么?怎么样 ? flv是来自Macromedia(现为Adobe)的专有容器,主要问题不在于Linux vs windows,而在于它是专有格式。使用手刹或类似工具,这是您最好的机会http://en.wikipedia.org/wiki/Flash_Video#FLV_converters – Ken

+0

我没有足够的带宽下载手刹。我用内置的电影播放器​​播放它们。我也尝试在我的朋友的Windows电脑上使用VLC.Media播放器的经典和Windows媒体播放器。我知道flv是一个容器,它来自Adobe。我没有看到Window vs Linux的比较,我只是不能运行Linux上的任何Windows工具。 – Xonar

+0

尝试使用葡萄酒,从PPA的最新版本是一个大的错误修复版本,可以使许多事情工作。 – Ken

回答

3

我修好了。

不是我所期待的解决方案,但我设法用avconv

avconv -ss "$TIME" -i "$IN" -vcodec copy -acodec copy "$OUT"."$PART".mkv 

把SS分割文件转换成不同的位之前输入文件导致它使用关键帧跳转到正确的位置,然后没有遇到腐败的位和崩溃。在每次损坏之后,我用新的$ TIME重复上一步。

最后我avconv CONCAT选项添加所有位一起,现在,它的工作原理。当达到先前的损坏位时,视频跳转一点,但没关系。

+0

你能否澄清一下,你如何得到正确的时间/(下一个)关键帧信息?您是通过手动检查文件或使用某种工具来完成的。你是否用它做了一些脚本。如果有,请分享一下。我使用FFMPEG做同样的事情,是的,它的工作,但我想要更多的准确性,因为我一直在手动选择时间。谢谢! – msinfo

+0

我从一个工具中获得了关键帧(不记得是哪个),并且我使用了一个python脚本(我没有了:()来解释它,并用ffmpeg与我从该工具获得的关键帧信息进行分割。 – Xonar

+0

@Xonar:'ffmpeg',当试图转换FLV文件时,告诉我这个:“新音频流0:2在pos:4696739和DTS:211.198s”,所以我得到了确切的时间。 – Geremia