你好 .
我有一个很大的视频文件 . ffmpeg
, tcprobe
和其他工具说,它是AVI容器中的h264流 .
现在我想从视频中删除小块 .
-
问题:视频接缝的索引已损坏/已损坏 . 我通过
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
)中描述的那样,但是这个测试无法在视频文件中搜索 . -
问题:我通过以下命令剪切部分视频:
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
. 现在问题在于,一些视频在开始时已损坏 . 我认为这是因为事实上,我不一定会在关键帧上削减 .
问题:
-
修复avi“内联”索引的最佳方法是什么,以便每个工具可以再次按预期工作?
-
如何在关键帧上拆分?是否有针对此的mencoder选项?
-
关键帧是否会出现频率?如何找出这个频率? (因此,通过一些数学计算,应该可以计算下一个关键帧并在那里切割)
-
或许还有其他一些完全分开这部电影的方法吗?手工做是没有选择的,我要削减1000块...
非常感谢!
2 回答
https://spreadsheets.google.com/ccc?key=0AjWmZ0umsuZHdHNzZVhuMTkxTHdYbUdCQzF3cE51Snc&hl=en列出了可用于精确分割的各种选项 .
在做任何事情之前,我会尝试使用avidemux来修复文件 . 使用基于MP4的容器而不是AVI,您可能也会获得更好的结果 .
至于确保你的指定间隔在关键帧上是正确的,我建议用FFMPEG编码:
-g 1
选项,然后使用下面的分割来确保每个帧实际上都是一个关键帧 . FFMPEG将关键帧称为GOP或图片组 .然后多次拆分(使用FFMPEG):
还有一些选择:
x264 Mapping FFMPEG encoding in linux