ffmpeg:如何防止出现错误时等待
ffmpeg: how to prevent wait in case of error
我使用ffmpeg为images/videos添加水印,使用如下命令行:
ffmpeg -y -f mjpeg -i input -i /tmp/watermark.png -filter_complex "..." -f mjpeg output
问题是,如果输入文件 不是 jpeg 文件,进程将 HANG 而不是退出并报错:
Press [q] to stop, [?] for help
[mjpeg @ 0x126dc60] dqt: len 28602 is too large
Error while decoding stream #0:0: Invalid data found when processing input
frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
在我的情况下,文件没有扩展名,我必须指定 -f
。如果我弄错了文件类型,这是一个可以接受的错误,我会在发现此类问题后立即修复。然而,如果 ffmpeg 在没有返回父进程的情况下挂起,这对我来说 不是 好,因为我有一个非常大的文件队列要处理,我不希望任何错误阻止处理任务。
我使用ffmpeg为images/videos添加水印,使用如下命令行:
ffmpeg -y -f mjpeg -i input -i /tmp/watermark.png -filter_complex "..." -f mjpeg output
问题是,如果输入文件 不是 jpeg 文件,进程将 HANG 而不是退出并报错:
Press [q] to stop, [?] for help
[mjpeg @ 0x126dc60] dqt: len 28602 is too large
Error while decoding stream #0:0: Invalid data found when processing input
frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
在我的情况下,文件没有扩展名,我必须指定 -f
。如果我弄错了文件类型,这是一个可以接受的错误,我会在发现此类问题后立即修复。然而,如果 ffmpeg 在没有返回父进程的情况下挂起,这对我来说 不是 好,因为我有一个非常大的文件队列要处理,我不希望任何错误阻止处理任务。