gpt4 book ai didi

ffmpeg - 有没有办法让多个视频源循环与 ffmpeg 一起旋转?

转载 作者:行者123 更新时间:2023-12-04 23:12:05 25 4
gpt4 key购买 nike

有什么办法可以让我说 4 个实时视频流并让它们在屏幕上循环播放?我想拍摄一个视频源并播放,等待 5 秒,转到下一个视频源,等待 5 秒,等等……下面是实际的 ffmpeg我想使用的命令,到目前为止我唯一的想法是:

for rotation in $source4 $source5 $source6 $source7; do
ffmpeg -rtsp_transport tcp -stimeout 100 -i $source1\
-rtsp_transport tcp -stimeout 100 -i $source2\
-rtsp_transport tcp -stimeout 100 -i $source3\
-rtsp_transport tcp -stimeout 100 -i $rotation\
-filter_complex "nullsrc=size=3840x2160 [base];\
[0:v] setpts=PTS-STARTPTS [upperleft];\
[1:v] setpts=PTS-STARTPTS [upperright];\
[2:v] setpts=PTS-STARTPTS [lowerleft];\
[3:v] setpts=PTS-STARTPTS [lowerright];\
[base][upperleft] overlay=shortest=1 [tmp1];\
[tmp1][upperright] overlay=shortest=1:x=1920 [tmp2];\
[tmp2][lowerleft] overlay=shortest=1:y=1080 [tmp3];\
[tmp3][lowerright] overlay=shortest=1:x=1920:y=1080"\
-c:v h264_nvenc -preset llhq -f matroska - | ffplay -
sleep 5
done
正如您所看到的,考虑到让一切顺利进行需要多长时间,这不会非常有效甚至不可用。如果有人有任何想法,我将不胜感激。我只精通 Linux shell 脚本 (Bash),所以目前我无法使用任何其他语言。我对其他工具或框架的尝试持开放态度。主要目标是为一组安全摄像头制作一个脚本,其中一个在马赛克中旋转通过所有其他摄像头供稿,其中不包括屏幕上已经出现的 3 个摄像头。它需要尽可能低的维护,即网络问题断开连接,它应该自动继续检查连接并在建立后重新启动。我可以很容易地在 Bash 脚本中做到这一点,但是将视频全部显示在屏幕上是一个挑战。我考虑过对 ffplay 进行完全独立的调用对于每个提要,然后使用 wmctrl或类似的安排它们在屏幕上,但我仍然有重新启动旋转的问题。

最佳答案

循环无限:

#!/bin/bash
INP=("input 1.mp4" test01.mkv test02.mkv test03.mkv)
while true; do
for i in "${INP[@]}"; do
ffmpeg -i "$i" -c:v h264_nvenc -t 5 -f matroska - | ffplay -autoexit -
done
done
也许,更好的方法是单独启动每个输入并使用 wmctrl

关于ffmpeg - 有没有办法让多个视频源循环与 ffmpeg 一起旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64629775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com