Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash ffmpeg-超读原因“;“转换失败”;具有多个并行实例_Bash_Video_Ffmpeg - Fatal编程技术网

Bash ffmpeg-超读原因“;“转换失败”;具有多个并行实例

Bash ffmpeg-超读原因“;“转换失败”;具有多个并行实例,bash,video,ffmpeg,Bash,Video,Ffmpeg,我正在尝试使用ffmpeg并行地从多个视频中提取图像。 下面是我的bash脚本: 用于*.MOV中的视频;做 base=`basename“$video”.MOV` ffmpeg-i“$video”-r 0.02“$base”/out\uu%02d.png>日志/“$base”2>&1& 完成 在运行此操作时(在60个视频上),我检查了日志/文件,其中40个文件在开始时崩溃,出现以下错误: 初始化输出流0:0时出错--打开输出流#0:0的编码器时出错-可能是不正确的参数,如比特率、速率、宽度或

我正在尝试使用
ffmpeg
并行地从多个视频中提取图像。 下面是我的bash脚本:

用于*.MOV中的视频;做
base=`basename“$video”.MOV`
ffmpeg-i“$video”-r 0.02“$base”/out\uu%02d.png>日志/“$base”2>&1&
完成
在运行此操作时(在60个视频上),我检查了
日志/
文件,其中40个文件在开始时崩溃,出现以下错误:

初始化输出流0:0时出错--打开输出流#0:0的编码器时出错-可能是不正确的参数,如比特率、速率、宽度或高度

转换失败

但是,它可以很好地处理少量的视频(大约5个,甚至是以前不可用的视频)


编辑:我尝试禁用超读功能,现在可以正常工作了。为什么超线程导致
ffmpeg
失败?

次“超”线程可能通常处于准备执行状态,因为执行线程的流处理不需要暂停以等待更多数据进入。在不禁用超线程的情况下,将
-threads 1
添加到ffmpeg命令中可能有助于并行使用。

次“超”线程通常会陷入就绪可执行状态,因为执行线程的流处理不需要暂停以等待更多数据进入。在不禁用超线程的情况下,将
-threads 1
添加到ffmpeg命令可能有助于并行使用。

我也使用了相同的命令,效果很好。我忘了在我的问题sry(编辑问题)解决方案中提到它:因为你说它适用于较小的集合,所以你可以按顺序处理文件。这需要更长的时间,但应该会成功。删除尾随的
&
。确实应该这样做,但我在一台拥有大约100个内核的HPC服务器上工作,这是一种使用并行性的反射:)我尝试禁用了超线程,它解决了问题,现在工作正常(但我不确定为什么)。这类问题的政策是什么?我是否应该写一个答案并接受它,即使没有解释?或者让它打开?如果您对实际原因感兴趣,请编辑问题的形式»为什么超读导致ffmpeg失败«,然后等待答案。但是,如果你只关心一个有效的解决方案,请回答你自己并结束这个问题。我也用同样的命令这样做了,而且效果很好。我忘了在我的问题sry(编辑问题)解决方案中提到它:因为你说它适用于较小的集合,所以你可以按顺序处理文件。这需要更长的时间,但应该会成功。删除尾随的
&
。确实应该这样做,但我在一台拥有大约100个内核的HPC服务器上工作,这是一种使用并行性的反射:)我尝试禁用了超线程,它解决了问题,现在工作正常(但我不确定为什么)。这类问题的政策是什么?我是否应该写一个答案并接受它,即使没有解释?或者让它打开?如果您对实际原因感兴趣,请编辑问题的形式»为什么超读导致ffmpeg失败«,然后等待答案。但是,如果你只关心一个有效的解决方案,请回答你自己并结束这个问题。谢谢你的回答。但是,处理器的想法不是在所有线程之间周期性地切换上下文吗?另外,为什么这会导致错误,因为另一个线程可能只是“等待轮到它”被执行谢谢你的回答。但是,处理器的想法不是在所有线程之间周期性地切换上下文吗?此外,为什么会导致错误,因为另一个线程可能只是“等待轮到它”执行