gpt4 book ai didi

ruby-on-rails - 无法抑制 ruby​​ 的 ffmpeg 输出

转载 作者:行者123 更新时间:2023-12-04 23:05:33 27 4
gpt4 key购买 nike

我有 ruby​​ on rails 应用程序,允许用户上传视频。添加视频时,我有一个 before_save 过滤器,它使用 ffmpeg 生成一系列缩略图。问题是,当我在 rails 控制台中保存视频项目以及运行测试时,ffmpeg 会产生大量控制台输出。

我的环境:

  • 主机:OS X 10.9.2
  • 流浪盒:Ubuntu 10.04.4
  • ffmpeg 版本:SVN-r0.5.9-4:0.5.9-0ubuntu0.10.04.3
  • ruby 版本:1.9.3-p194

  • 我正在运行的命令:
    `ffmpeg -v 0 -ss #{timestamp} -i #{video_file.path} -y -f image2 -vcodec mjpeg -vframes 1 -s 640*360 #{thumbnail_path}/thumbnail#{i}.jpg`

    我的 VM 上的这个版本的 ffmpeg 似乎并不关心“-v 0”选项。我还尝试了“-loglevel quiet”,这会导致 ffmpeg 出错,表明该选项无法识别(loglevel 和 v 在我的主机的 ffmpeg 上工作)。

    尝试同时使用 exec() 和 system(),这都导致执行挂起。尝试通过执行以下操作将输出重定向到文件:
    `ffmpeg -v 0 -ss #{timestamp} -i #{video_file.path} -y -f image2 -vcodec mjpeg -vframes 1 -s 640*360 #{thumbnail_path}/thumbnail#{i}.jpg > #{thumbnail_path}/output.txt`

    仍然看到输出。接下来我尝试了:
    `ffmpeg -v 0 -ss #{timestamp} -i #{video_file.path} -y -f image2 -vcodec mjpeg -vframes 1 -s 640*360 #{thumbnail_path}/thumbnail#{i}.jpg &> dev/null`

    仍然看到输出!最后我尝试了:
    $stdout.reopen("#{thumbnail_path}/output.txt", "w")
    $stderr.reopen("#{thumbnail_path}/error.txt", "w")
    `ffmpeg -v 0 -ss #{timestamp} -i #{video_file.path} -y -f image2 -vcodec mjpeg -vframes 1 -s 640*360 #{thumbnail_path}/thumbnail#{i}.jpg`
    $stdout = STDOUT
    $stderr = STDERR

    天哪,这行得通!嗯,有点。运行测试时不再有详细的输出,但不知何故,无论何时运行,我都会被踢出 Rails 控制台。

    有没有人有更优雅的解决方案?

    最佳答案

    你可以试试 :

    ffmpeg ... >output.txt 2>&1

    在 output.txt 中插入 stdout 和 stderr

    关于ruby-on-rails - 无法抑制 ruby​​ 的 ffmpeg 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846548/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com