FFMPEG 和 FFPlay 可以从一个 ip 访问 rtsp 流,但从其他 ip,它不能
FFMPEG and FFPlay can access rtsp stream from one ip, but from other ip, it can't
情况有点复杂。我通过 OpenCV 归档了几个闭路电视摄像机的馈送(rtsp、h264、无音频),这很有效,但是 CPU 利用率太高并且开始逐渐丢失一些帧。
为了降低 CPU 利用率,我开始使用 FFMPEG 来跳过解码和编码过程,这在我的家用机器上运行得非常好。然而,当我连接到我的大学 VPN 并尝试将其部署到我们的实验室服务器上时,FFmpeg 无法读取任何帧,ffplay 也无法获取任何内容。但是,OpenCV、VLC Player 和 IINA Player 仍然可以读取和显示提要。
总而言之,
1 FFMPEG/ffplay
1.1 只能从我的家庭网络(Wi-Fi,最佳)读取提要
1.2 来自其他两个网络,错误信息为:“找不到流 0 的编解码器参数(视频:h264,none):未指定大小
考虑增加 'analyzeduration' (0) 和 'probesize' (5000000) 选项的值
2 IINA/VLC 播放器,OpenCV
这些工具可以随时获取视频
我想知道它是否与某些特定端口访问有关,ffmpeg 需要而其他端口不需要。如果有人能提供任何建议,我将不胜感激。
作为参考,测试的ffplay命令很简单:
ffplay 'the rtsp address'
谢谢
更新
已执行更多测试。
通过指定rtsp_transport为TCP,ffplay可以播放视频,但是FFmpeg不能访问视频。 (一开始,当 FFmpeg 和 ffplay 都通过我的家庭网络工作时,它是 UDP)
FFmpeg命令如下:
ffmpeg -i rtsp://the_ip_address/axis-media/media.amp -hide_banner -c:v copy -s 1920x1080 -segment_time 00:30:00 -f segment -strftime 1 -reset_timestamps 1 -rtsp_transport tcp "%Y-%m-%d-%H-%M-%S_Test.mp4"
请帮忙...
通过强制它在 -i 之前使用“-rtsp_transport tcp”解决。
ffmpeg -rtsp_transport tcp -i rtsp://the_ip_address/axis-media/media.amp -hide_banner -c:v copy -s 1920x1080 -segment_time 00:30:00 -f segment -strftime 1 -reset_timestamps 1 "%Y-%m-%d-%H-%M-%S_Test.mp4"
情况有点复杂。我通过 OpenCV 归档了几个闭路电视摄像机的馈送(rtsp、h264、无音频),这很有效,但是 CPU 利用率太高并且开始逐渐丢失一些帧。
为了降低 CPU 利用率,我开始使用 FFMPEG 来跳过解码和编码过程,这在我的家用机器上运行得非常好。然而,当我连接到我的大学 VPN 并尝试将其部署到我们的实验室服务器上时,FFmpeg 无法读取任何帧,ffplay 也无法获取任何内容。但是,OpenCV、VLC Player 和 IINA Player 仍然可以读取和显示提要。
总而言之,
1 FFMPEG/ffplay
1.1 只能从我的家庭网络(Wi-Fi,最佳)读取提要
1.2 来自其他两个网络,错误信息为:“找不到流 0 的编解码器参数(视频:h264,none):未指定大小 考虑增加 'analyzeduration' (0) 和 'probesize' (5000000) 选项的值
2 IINA/VLC 播放器,OpenCV 这些工具可以随时获取视频
我想知道它是否与某些特定端口访问有关,ffmpeg 需要而其他端口不需要。如果有人能提供任何建议,我将不胜感激。
作为参考,测试的ffplay命令很简单:
ffplay 'the rtsp address'
谢谢
更新
已执行更多测试。
通过指定rtsp_transport为TCP,ffplay可以播放视频,但是FFmpeg不能访问视频。 (一开始,当 FFmpeg 和 ffplay 都通过我的家庭网络工作时,它是 UDP) FFmpeg命令如下:
ffmpeg -i rtsp://the_ip_address/axis-media/media.amp -hide_banner -c:v copy -s 1920x1080 -segment_time 00:30:00 -f segment -strftime 1 -reset_timestamps 1 -rtsp_transport tcp "%Y-%m-%d-%H-%M-%S_Test.mp4"
请帮忙...
通过强制它在 -i 之前使用“-rtsp_transport tcp”解决。
ffmpeg -rtsp_transport tcp -i rtsp://the_ip_address/axis-media/media.amp -hide_banner -c:v copy -s 1920x1080 -segment_time 00:30:00 -f segment -strftime 1 -reset_timestamps 1 "%Y-%m-%d-%H-%M-%S_Test.mp4"