我使用 Adobe Premier 在一些客户端电脑上编辑视频,我想通过 ffmpeg 命令在 ubuntu 服务器上渲染我的视频。换句话说,我不想用 Premier 项目自己的编码器来渲染它,而是想在 Linux 操作系统上使用 ffmpeg 来渲染它。我知道可以使用帧服务来分发渲染过程。目前我发现的唯一方法是使用调试模式框架服务器随着艾维合成。但问题是 Debugmode Frameserver 仅具有基于 Windows 的应用程序,而 AviSynth 可在 Linux 上使用。现在有人能告诉我该怎么做吗?是否有 Debugmode Frameserver 的 Linux 替代品,或者是否有其他方法可以做到这一点?
我并不想在 Linux 服务器上执行此操作,这意味着它没有任何 GUI。
答案1
您可以使用 ffmpeg 来完成此操作,步骤如下:
首先执行此页面上的第二种方法(“使用框架服务器”)的步骤(”如何在 Adobe Premiere Pro 中使用 ffmpeg 进行编码“)
从这一步开始,您应该通过 Debugmode 和 Avisynth 在特定 IP 和端口上流式传输 Premier 时间线。现在打开命令行并运行此 ffmpeg 命令:
ffmpeg -i frameserver.avs -f mpegts tcp://[IP address of your server]:[open port on your server]
通过运行此命令,您将通过 ffmpeg 将 Avisynth 输出(流式传输)发送到目标机器(您的 linux 服务器)。完成此步骤后,您在客户端服务器(您编辑视频的地方)上要做的所有事情都已完成,现在让我们转到服务器端。
- 在服务器(您的 Linux 服务器)上只需运行以下 ffmpeg 命令即可完成:(假设您的服务器上安装了 ffmpeg)
ffmpeg -i tcp://[your server IP]:[The same port you entered in step 2]?listen -c:v libx264 -preset medium -crf 23 -pix_fmt yuv420p -c:a libfdk_aac -vbr 4 output2.mp4
通过此命令,ffmpeg 将监听指定的 IP 和端口并接收发送的数据包并使用您喜欢的选项对其进行编码!
答案2
我不太明白 Debugmode Frameserver 和 AviSynth 在您的用例中如何交互。AviSynth 是否在侦听 Debugmode Frameserver 向其发送数据的目标机器上的端口或套接字?我不知道 AviSynth 可以做到这一点。
我知道 AviSynth 本身就是为 Windows 构建的框架服务器。已经有人努力将 AviSynth 功能引入 Linux 或使其跨平台,最新和最有希望的是蒸汽合成器。
如果需要在目标机器上运行 Debugmode Frameserver,则需要尝试将其与 Wine 一起使用。几年前,使用 Wine 运行 AviSynth 很棘手,尽管在某种程度上是可行的并且很稳定,但上次我尝试时,VapourSynth 在 Windows 上更可靠,也更轻松。从那时起,所有必要的部分似乎都已移植到 VapourSynth,以使 QTGMC 等过滤器本地运行。