使用ffMpeg转换Azure Webjob中的视频文件

时间:2015-12-08 16:04:02

标签: azure ffmpeg azure-webjobs

我在Azure webjob中使用ffMpeg时遇到问题。

我发现了以下文章(How to call ffmpeg.exe to convert audio files on Windows Azure?),这正是我想要做的事情,但是,我无法让ffMpeg执行并且它没有给出任何错误消息。

要诊断问题,我已将其归结为基本要素,方法是上传ffMpeg,要转换的视频文件和批处理文件来运行它:

files in directory

run.cmd中的脚本只是:

del output.mp4
ffmpeg -i screencast.wmv -c:v libx264 -r 15 output.mp4

这适用于我的个人计算机,但作为webjob运行我得到以下结果。

[12/08/2015 15:42:39 > bf9dd6: SYS INFO] Status changed to Initializing
[12/08/2015 15:42:39 > bf9dd6: SYS INFO] Job directory change detected: Job file 'ffmpegtest\output.mp4' exists in source directory but not in working directory.
[12/08/2015 15:42:47 > bf9dd6: SYS INFO] Run script 'run.cmd' with script host - 'WindowsScriptHost'
[12/08/2015 15:42:48 > bf9dd6: SYS INFO] Status changed to Running<br />
[12/08/2015 15:42:48 > bf9dd6: INFO] 
[12/08/2015 15:42:48 > bf9dd6: INFO] D:\local\Temp\jobs\triggered\ffMpeg\y1bdnb1e.03k\ffmpegtest>del output.mp4 
[12/08/2015 15:42:48 > bf9dd6: INFO] 
[12/08/2015 15:42:48 > bf9dd6: INFO] D:\local\Temp\jobs\triggered\ffMpeg\y1bdnb1e.03k\ffmpegtest>ffmpeg -i screencast.wmv -c:v libx264 -r 15 output.mp4 
[12/08/2015 15:42:49 > bf9dd6: SYS INFO] Status changed to Failed
[12/08/2015 15:42:49 > bf9dd6: SYS ERR ] Job failed due to exit code -1073741515

编辑: 另外,有人建议我使用Kudu控制台运行。仍然没有运气:
Kudu Screenshot

解决方案:
我最终需要运行32版本的ffMpeg而不是64位。非常感谢@mathewc!

2 个答案:

答案 0 :(得分:1)

您的问题是,您需要将输入/输出文件名用引号括在run.cmd文件中,以便它们正确展开。

ffmpeg -i "screencast.wmv" -c:v libx264 -r 15 "output.mp4"

对于未来,诊断这些类型问题的最佳方法是在Kudu Console中运行命令以获取exe的详细输出信息。这使您可以像在本地一样测试内容,并解决在Azure环境中运行时可能存在的任何轻微差异。

答案 1 :(得分:0)

您可能遇到了一些sandbox restrictions。为了帮助隔离,我建议您尝试直接从Kudu Console运行命令,使WebJobs部分不在等式中。