修复提前停止的flv文件

时间:2012-10-19 13:18:00

标签: flv

我前段时间下载了一些flv视频,当看到它们时,它们停在某一点上。如果我跳过这一点,他们继续玩精细直到另一个点,然后我可以再次跳过(并且循环一直持续到视频结束)

我已经尝试了

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

据我所知,通过阅读大量关于此问题的无用帖子,我的元数据中没有任何关键帧,然后在出现错误帧时停止。

我尝试设置-g更高,但output.flv停止在与原始文件第一次停止的位置相同的位置。有没有任何工具可以解决这个问题。

我不记得原始链接的位置,重新下载不是一个选项,因为您可以看到我的重新编码尝试失败。

我使用的是Linux Ubuntu,所以我无法使用可用的Windows工具。

修改

经过多次努力,我仍然无法修复该文件。

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

元数据应该是它的本质。 (我成功地提取了它)。看来这些流是腐败的。我尝试重新复用,重新编码注入MetaData没有一个工作,他们生成的文件仍然停留在相同的位置或只是流直到坏点。

我的问题与此处列出的完全相同:link

非常感谢任何帮助。即使我不得不用十六进制编辑器破解一些文件,我也会采取任何解决方案。 (我尝试删除我虽然是坏的但是导致它根本不玩)

我现在有一台Windows机器,所以运行Windows实用程序不再是问题。

2 个答案:

答案 0 :(得分:3)

我修好了。

不是我希望的解决方案,但我设法使用avconv将文件拆分为不同的位

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

在输入文件之前放置ss会导致它使用关键帧跳转到正确的位置,然后没有遇到损坏的位并崩溃。在每个损坏的位之后,我用新的$ TIME重复上一步。

最后,我将所有位与avconv concat选项一起添加,现在它可以工作了。当达到先前的损坏位时,视频会向前跳一点,但这很好。

答案 1 :(得分:0)

我有许多ffmpeg在启动后立即停止的旧FLV文件,我使用

使其正常工作

ffmpeg -flv_ignore_prevtag 1 -i file.flv -c ...

查看https://ffmpeg.org/ffmpeg-all.html#flv_002c-live_005fflv了解更多信息