分享

AE怎么导入SRT文件?不需要任何脚本插件,却能一键生成

 W360文档 2021-01-12

自CC2018版本的AE以来,您可以导入JSON文件以创建数据驱动的动画。那么,JSON文件基本上只是文本吗?所以这让我思考; “如果我尝试导入SRT文件而不是JSON会怎样?” 事实证明,如果在导入文件对话框中省略文件掩码(所有文件(*。*)),您实际上可以导入* .srt文件。运用

  1. footage(“filename.srt”).sourceText  

如果显示SRT文件的(完整)内容,则作为textLayer的源文本上的表达式。我现在要做的就是解析内容,获取及时,出时和实际的子,并在正确的时间显示所有内容。请注意,我不是程序员,所以可能有一个比这更好,更有效,更漂亮的解决方案,但这是我的工作解决方案:

  1. var subFile = “sub.srt”;  

  2. var lines = footage(subFile).sourceText.split(‘\n\r\n’);  

  3. for (n = 0; n 

  4. if (time >= srt(lines, n).start && time 

  5. sourceText = srt(lines, n).sub;  

  6. break;  

  7. } else {  

  8. sourceText = “”;  

  9. }  

  10. }  

  11. //————————————  

  12. function srt(lines, i) {  

  13. origin = lines[i].split(‘\n’);  

  14. ID = parseInt(origin[0]);  

  15. startText = origin[1].match(/^[0-9][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9]/)[0].replace(“,”, “:”);  

  16. endText = origin[1].match(/\s[0-9][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9]/)[0].replace(‘ ‘, ”).replace(“,”, “:”);  

  17. var subtitle = “”;  

  18. for (var j = 2; j 

  19. subtitle = subtitle + origin[j] + ‘\n’;  

  20. }  

  21. return {id:ID, start:parseTime(startText), end:parseTime(endText), sub:subtitle};  

  22. }  

  23. //————————————  

  24. function parseTime(str) {  

  25. hours = parseInt(str.split(‘:’)[0]);  

  26. minutes = parseInt(str.split(‘:’)[1]);  

  27. seconds = parseInt(str.split(‘:’)[2]);  

  28. millisesconds = parseInt(str.split(‘:’)[3]);  

  29. t = (hours*60*60) + (minutes*60) + seconds + (millisesconds/1000);  

  30. t = Math.round(t*100)/100;  

  31. return t;  

  32. }  

您只需将上面的表达式放在TextLayer的Source Text属性中,并将“sub.srt”替换为导入的字幕文件的名称。

积分获取方式:发文赚钱+签到积分+推广返利+充值
本站仅供资源信息交流学习,不保证资源的可用及完整性,有任何问题请联系站长
加入终身VIP:全站资源免费+售后答疑服务 了解一下,网站的发展方向以终身VIP为主
转载文章请注明出处
果味酱CG小屋 » AE怎么导入SRT文件?不需要任何脚本插件,却能一键生成
AE果味酱

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多