我的任务是每天晚上对一堆 GoToMeeting 视频文件进行转码。视频转码后,将上传到网站。然而,在我深入这个项目之前,我想弄清楚这是否可能。
我当前的示例脚本是一个简单的批处理文件,我可以在其中将多个文件拖放到批处理文件中。它将转码第一个文件,显示输出,然后继续对第二个文件进行转码。这是我正在寻找的预期行为。
@echo off
C:\g2mtranscoder.exe source=%~1
echo %~1 has completed.
C:\g2mtranscoder.exe source=%~2
echo %~2 has completed.
C:\g2mtranscoder.exe source=%~3
echo %~3 has completed.
C:\g2mtranscoder.exe source=%~4
echo %~4 has completed.
pause
我的问题是,如果在 C# 中(最终将成为 Windows 服务),是否像调用外部程序g2mtranscoder.exe
进行转码然后将我的上传脚本放在后面一样简单?显然,我不想上传当前正在转码的视频,也不想在没有先转码的情况下上传视频。
我的子问题是将它放在一个循环中(对于目录中的每个文件)如果目录的内容只是待转码的待处理视频,会导致任何问题吗?如果在循环中,它会尝试循环并开始异步地对目录中的所有文件进行转码,还是会更加同步?我想避免循环异步发生,因为它可能会使机器过载,从而导致音频/视频时序出现伪影或同步问题。最重要的是,无法上传正在转码的视频或未转码的视频。
任何对此的编码建议都会很棒,但我真的希望更多地了解 C# 如何与代码执行一起工作,并在执行的 C# 代码中间调用一个外部程序。
我更喜欢 Ruby/Rails 和 Linux 人员,并且在 C# 方面没有太多经验。我知道足够危险,但只是想确保我想做的事情是可行的。