在您完成所有操作之前,请投票关闭,像其他线程一样,听我说完。我有一个程序,它会产生一个图像流。我想将该流提供给同一台机器上的 ffmpeg 会话。问题是我通过 ssh 连接到该机器。我个人不希望看到程序的视觉输出。我只想将输出通过管道传输到 ffmpeg,这样我就可以在我的服务器上设置一个流,然后从那里查看它。
当我尝试运行该程序时,出现无法转发显示的错误。
./capture | ffmpeg -f rawvideo -pix_fmt bgr24 -s 640x480 -r 30 -i - -an -f avi -r 30 foo.mp4
...
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
(Name:22073): Gtk-WARNING **: cannot open display:
Input #0, rawvideo, from 'pipe:':
Duration: N/A, bitrate: 221184 kb/s
Stream #0:0: Video: rawvideo (BGR[24] / 0x18524742), bgr24, 640x480, 221184 kb/s, 30 tbr, 30 tbn, 30 tbc
但我不想将程序的图形输出发送到我的远程会话,我只想让它在远程机器上运行。我尝试使用 将命令发送到后台bg
,但输出如下:
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
那么,我怎样才能让程序在远程机器上执行其图形窗口,而无需它尝试通过 ssh 向我发送视频流?
如果我开车到服务器所在地,并运行命令,
./capture | ffmpeg -f rawvideo -pix_fmt bgr24 -s 640x480 -r 30 -i - -an -f avi -r 30 foo.mp4
我确信它会运行,并且会很好,但我不想这样做。