如何在node.js + ffmpeg上以字幕和音频尽快生成视频?

时间:2018-09-12 12:59:05

标签: node.js audio video ffmpeg

简介:

我们从网站上收到了一些文字 碎片到达node.js服务器

在输出中,我们需要获得一个视频,该视频是由所有文本片段(由机器语音发出的声音)与添加的字幕和音频底物合并而成的。以便该用户可以在社交网络中共享该视频。 VK.com不支持MKV格式

我们尝试过的选项: 1.一次获取所有文本,生成整个语音,创建带有字幕的文件,在视频.mp4中刻录字幕(vk.com不支持.mkv容器)。在本地计算机上,花了 12秒的时间才能播放45秒的视频。 2.为每段文本生成音频和视频文件(带有字幕)。一篇文本花了一秒钟。在最终要求下,我们将所有零件合并在一起。最后一个请求(合并)花费了 2-3秒,这已经可以接受。

第二种变体在速度方面看起来可以接受,但是如果同时运行50个客户端,则计算机(在MacBook Pro 2013上测试,2.4 GHz i7、8gb 1600 Mhz DDR3,SSD 256gb)仅处理1 60秒慢60倍)从1个客户端收到的邮件,然后计算机挂紧。

我们使用的命令:

  • 刻录视频字幕并调整为有条件的6秒(在代码中发送unix时间戳)

df %>% filter(cumany(Data == 1415)) %>% slice(-1) %>% filter(Type == "LiveView") %>% slice(1) ## Time CardID Data Type ## 1 2018-01-01 00:38:01 10037479 1412 LiveView

  • 合并所有音频

ffmpeg -i import / back.mov -i export_0 / tmp.srt -scodec mov_text -t 6 export_0 / output.mov

  • 在文本上覆盖音频底物

ffmpeg -i audio1.mp3 .... -i audio15.mp3 merged.mp3

  • 合并所有视频

ffmpeg -i merged.mp3 -i back.mp3 -filter_complex amerge -ac 2-c: a libmp3lame -q: a 4 -shortest audio.mp3

  • 在视频上叠加音频

ffmpeg -i video.txt -f concat -c copy video.mp4

问题:折磨:

  1. 速度更快吗?

  2. 是否可以使用其他编解码器或粘合方法而无需重新编码?

  3. 尝试不使用包装器直接调用ffmpeg吗? (实际上,它可以提供50-100毫秒的速度)

  4. 尝试不保存到磁盘上,而是将数据写入Stream并最终将它们粘合在一起?

0 个答案:

没有答案