我前段时间下载了一些flv视频,当看到它们时,它们停在某一点上。如果我跳过这一点,他们继续玩精细直到另一个点,然后我可以再次跳过(并且循环一直持续到视频结束)
我已经尝试了
avconv -i input.flv -acodec copy -vcodec copy -g 1 output.flv
据我所知,通过阅读大量关于此问题的无用帖子,我的元数据中没有任何关键帧,然后在出现错误帧时停止。
我尝试设置-g更高,但output.flv停止在与原始文件第一次停止的位置相同的位置。有没有任何工具可以解决这个问题。
我不记得原始链接的位置,重新下载不是一个选项,因为您可以看到我的重新编码尝试失败。
我使用的是Linux Ubuntu,所以我无法使用可用的Windows工具。
修改
经过多次努力,我仍然无法修复该文件。
我认为MetaData是问题我错了。在尝试了一系列工具之后,我发现大多数工具都以文件结尾(在文件中间)停止。
元数据应该是它的本质。 (我成功地提取了它)。看来这些流是腐败的。我尝试重新复用,重新编码注入MetaData没有一个工作,他们生成的文件仍然停留在相同的位置或只是流直到坏点。
我的问题与此处列出的完全相同:link
非常感谢任何帮助。即使我不得不用十六进制编辑器破解一些文件,我也会采取任何解决方案。 (我尝试删除我虽然是坏的但是导致它根本不玩)
我现在有一台Windows机器,所以运行Windows实用程序不再是问题。
答案 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了解更多信息