3

你好。

我有一个很大的视频文件。ffmpegtcprobe其他工具说,它是 AVI 容器中的 h264 流。

现在我想从视频中剪下小块。

  1. 问题:视频接缝的索引损坏/损坏。我通过mplayer -forceidx -saveidx <IndexFile> <BigVideoFile>. 这里的问题是,我现在被 mplayer/mencoder 困住了,它可以通过-loadidx <IndexFile>. 我已经尝试像man aviindex( mplayer -frames 0 -saveidx mpidx broken.avi ; aviindex -i mpidx -o tcindex ; avimerge -x tcindex -i broken.avi -o fixed.avi) 中描述的那样更正索引,但这并没有修复我的视频 - 这意味着我测试过的大多数工具都无法在视频文件中搜索。

  2. 问题:我通过以下命令剪切了部分视频:mencoder -loadidx in.idx -ss 8578 -endpos 20 -oac faac -ovc x264 -sws 9 -lavfopts format=mp4 -x264encopts <LotsOfOpts> -of lavf -vf scale=800:-10,harddup in.avi -o out.mp4. 现在的问题是,有些视频一开始就损坏了。我认为这是因为事实上,我不一定在关键帧处剪切。

问题:

  1. 修复 avi“内联”索引的最佳方法是什么,以便每个工具都可以再次按预期工作?

  2. 如何在关键帧处拆分?有没有一个mencoder选项呢?

  3. 关键帧是否有频率出现?如何找出这个频率?(所以通过一些数学计算应该可以计算下一个关键帧并在那里剪切)

  4. 有没有其他完全不同的方式来分割这部电影?手工做是没有选择的,我必须切出 1000 多个块......

非常感谢!

4

2 回答 2

1

https://spreadsheets.google.com/ccc?key=0AjWmZ0umsuZHdHNzZVhuMTkxTHdYbUdCQzF3cE51Snc&hl=en列出了可用于准确拆分的各种选项。

于 2011-01-19T19:38:14.620 回答
0

在做任何事情之前,我会尝试使用avidemux来修复文件。使用基于 MP4 的容器也可能比 AVI 获得更好的结果。

至于确保您指定的间隔正好在关键帧处,我建议-g 1在使用下面的拆分之前使用 FFMPEG 进行编码:选项以确保每一帧实际上都是关键帧。FFMPEG 将关键帧称为 GOP 或图片组。

ffmpeg -i input.avi -g 1 -vcodec copy -acodec copy out.avi

然后多次拆分(使用 FFMPEG):

ffmpeg -i input.avi -ss 00:00:10 -t 00:00:30 out1.avi -ss 00:00:35 -t 00:00:30 out2.avi

尝试更多选项:

x264在linux中映射FFMPEG编码

于 2010-06-15T00:29:47.560 回答