直接将网络摄像头视频流写入vps中的指定目录

Write webcamera video stream into a specified directroy in vps directly

ffmpeg可以读取网络摄像头视频流并直接保存到文件中。

output="/tmp/sample.flv"
ffmpeg -re -f video4linux2 -i /dev/video0 -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -f flv -pix_fmt yuv420p  $output

ffmpeg 读取我的网络摄像头设备 video4linux2 并将实时视频流写入文件 /tmp/sample.flv。 我可以将网络摄像头的视频流直接写入我的 vps 中的指定目录吗?

我试过 bash :

ffmpeg -re -f video4linux2 -i /dev/video0 -vcodec libx264  \
       -vprofile baseline -acodec aac -strict -2 -f flv    \
       -pix_fmt yuv420p - | xargs -i ssh {} root@$vps_ip

ffmpeg -re -f video4linux2 -i /dev/video0 -vcodec libx264  \
       -vprofile baseline -acodec aac -strict -2 -f flv    \
       -pix_fmt yuv420p |ssh  root@$vps_ip

两者都不行

SSHFS 可以简化事情

SSHFS 允许您使用 SSH 挂载远程目录。

  1. 在远程主机上创建目标目录。在此示例中,它被命名为 remotedir.
  2. 在本地主机上创建挂载目录。在此示例中,它被命名为 mountpoint.
  3. 运行 sshfs: sshfs username@"$vps_ip":remotedir mountpoint
  4. 运行 ffmpeg: ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -profile:v baseline -vf format=yuv420p mountpoint/output.flv
  5. 要卸载 mountpoint 运行 fusermount3 -u mountpoint (Linux) 或 umount mountpoint (macOS)。

至于你的 ffmpeg 命令不要使用 -re 实时输入,也不需要 -strict -2.