我正在使用FFmpeg在几个片段中编码视频。例如,用户可以编码500帧,关闭它,然后恢复编码另外1300帧,关闭它,然后继续编码另外700帧。
此时,我在MKV文件中有3个x265流,我想将它们连接成一个文件。此时我没有音频。
我使用此命令将3个文件连接成1.然而,视频文件会播放错误,跳帧,更改速度或在交接点显示工件。
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowViewModel();
}
连接文件的正确方法是什么?
问题可能是我正在连接部分文件(当进程被终止时)。我尝试首先从MKV多路复用到MP4以生成有效的文件容器,然后连接这些MP4文件。输出的损坏较少,但交叉点仍然存在视觉故障。帧数是正确的。输出文件与所有段的帧数匹配。
我刚用h264再次尝试过;结果与h265相同。
答案 0 :(得分:0)
问题是杀死FFmpeg没有时间清理其输出文件,导致损坏。
然而,在.NET中对隐藏进程执行软杀死并不容易。
经过大量研究,我发现这个解决方案有效。 https://stackoverflow.com/a/29274238/3960200