为什么这不起作用:
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友好。哦,好吧…