使用命令替换的vim-diff-ffmpeg输出



为什么这不起作用:

vim -d <(ffmpeg -i vid1.mp4 2>&1) <(ffmpeg -i vid2.mp4 2>&1) 

我该如何让它发挥作用?

目前,它只是完全清除了我的屏幕,并导致我的终端冻结,对所有ctrl-ctrl-d和ctrl-z都没有反应。我每次都要退出我的终端。

如果您想要适合区分的输出,则必须使用ffprobe(随ffmpeg一起提供(:

$ vim -d <(ffprobe -i vid1.mp4 2>&1) <(ffprobe -i vid2.mp4 2>&1)

为什么?

ffmpeg是一个媒体转换器,它在处理过程中输出很多东西,包括源文件的一些信息。在不提供输出文件/流/任何东西的情况下使用它,只为了获得源文件的信息,这不是应该使用的方式,而且……无论如何,它都不能正常工作:你得到了信息,但终端可能处于奇怪的状态,操作返回非零状态。

通过使用ffmpeg,您实际上依赖于错误使用错误工具的副作用。

另一方面,ffprobe专门用于获取源文件的信息。

通过使用ffprobe,您依赖于正确使用正确工具的预期结果。


也就是说,ffprobe可能与ffmpeg共享很多代码,因为您需要2>&1破解来使其输出Vim友好。哦,好吧…

最新更新