2013-03-15 65 views
0

我们正在为我们的视频服务器使用RMTP,但是我们必须为每个视频创建一个SMIL(同步多媒体集成语言)文件。如果你有1个视频,没问题,但是我们有超过2000个。批处理脚本 - 导出带有infomraiton的文本文件

您可以在下面看到一个完美的SMIL文件。这一个被保存为视频test.smil

<smil> 
<head> 
<meta base="rtmp://xxx.cloudfront.net:1935/cfx/st/" /> 
</head> 
<body> 
<switch> 
<video src="video-streaming/video-test-720.mp4" height="720" system-bitrate="2000000" width="1280" /> 
<video src="video-streaming/video-test-360.mp4" height="360" system-bitrate="800000" width="640" /> 
<video src="video-streaming/video-test-180.mp4" height="180" system-bitrate="300000" width="320"/> 
</switch> 
</body> 
</smil> 

我的想法是做一个批处理脚本执行以下操作:

  1. 读取文件夹,并创建具有.MP4唯一的文件名数组扩展
  2. 以第一阵列和从第一阵列
  3. 导出与从与.smil阵列的第一部分中的相同名称的文件夹
  4. Incremment阵列和再在文件替换“视频测试”与名字泥炭

如果文件存在,特殊功能将跳过。

问题:

这甚至可以用SCRIPT来完成。有人可以帮助..

感谢

回答

2
@ECHO OFF 
SETLOCAL 
SET targetdir=. 
FOR /f %%i IN ('dir /b/a-d *.mp4') DO (
IF NOT EXIST %targetdir%\%%~ni.smil (
FOR /f "tokens=1*delims=#" %%s IN (smiltemplate.txt) DO (
SET subs=%%t 
IF DEFINED subs (ECHO %%s%%~ni%%t) ELSE (ECHO %%s) 
) 
) >%targetdir%\%%~ni.smil 
) 

您完美的SMIL文件保存为smiltemplate.txt - 与#

变化替换字符串video-test目标目录要生成.smil S和一切都完成了!

+0

圣灵的废话。我现在会测试!!!!! – Arthor 2013-03-15 21:11:07

+0

STROKE天才.... !!!!我可以把BAT文件放在另外一个目录中吗...谢谢 – Arthor 2013-03-15 21:27:10

+0

个人而言,我将所有的批处理文件保存在一个名为'BATCH'的目录中 - 尽管其他人更喜欢'BELFRY'。然后,您需要将目录添加到'PATH' - 'Settings> Control Panel> Advanced System Settings> Environment Variables按钮'更改PATH以包含您选择的目录 - 这是一个以分号分隔的列表。然后你可以从任何地方运行批处理(需要重新启动)。你需要在'* .mp4'之前包含MP4的目录路径,比如'c:\ wherever \ *。mp4' - 对于'smiltemplate.txt'也是如此 - 但我倾向于将'我自己在BATCH目录下的smiltemplate.txt。 – Magoo 2013-03-15 21:35:17