【问题标题】:how to put EXEC command in loop in TCL with windows platform如何在 Windows 平台的 TCL 中循环执行 EXEC 命令
【发布时间】:2018-05-11 11:03:49
【问题描述】:

如何在windows平台的TCL中循环执行EXEC命令。

我需要连续运行 EXEC 命令。但问题在它第一次执行后就停止了。

我的代码是

proc a {} {
  set a 1
  for {set i 0} {$i < 10} {incr i} {
    puts "I inside first loop: $i"
    exec ffmpeg -f dshow -benchmark -i "video=Integrated Webcam" \
            -s 1280x720 c:/test/sample_image.avi
  }
}
a

上述程序应捕获 10 个视频。但它只捕获一个视频并退出循环并停止执行。

我的任何朋友都可以通过提供所需代码修改的答案来帮助我吗?

【问题讨论】:

  • 你确定它不会创建文件c:/test/sample_image.avi一次并覆盖它9次吗?
  • 您看到多少次“我在第一个循环中”消息? 1 还是 10?

标签: windows for-loop ffmpeg tcl exec


【解决方案1】:

正如@Mathieu 在评论中提到的,您正在将所有帧写入同一个文件。要写入 10 个文件,请使用 i 使文件名唯一。另外,tcl exec 会抛出错误,除非通过了-ignorestderr 开关,这可能是提前终止的原因。

proc a {} {
  for {set i 0} {$i < 10} {incr i} {
    puts "I inside first loop: $i"
    exec -ignorestderr ffmpeg -f dshow -benchmark -i "video=Integrated Webcam" \
            -s 1280x720 c:/test/sample_image${i}.avi
  }
}
a

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2014-06-06
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多