我是否可以使用相机中的 H264 流而无需重新编码到 RTMP 端点?

我是否可以使用相机中的 H264 流而无需重新编码到 RTMP 端点?

在 Raspberry Pi 4 上进行一些测试,因此我尝试使用尽可能少的资源。

我有一个连接到 Pi 的 USB 端口的网络摄像头,它支持将视频流作为压缩的 H264 流发送:

ffmpeg -f v4l2 -list_formats all -i /dev/video1

[video4linux2,v4l2 @ 0x204e1c0] Compressed:       mjpeg :          Motion-JPEG : 640x360 1280x720 1920x1080
[video4linux2,v4l2 @ 0x204e1c0] Raw       :     yuyv422 :           YUYV 4:2:2 : 640x360 1280x720 1920x1080
[video4linux2,v4l2 @ 0x204e1c0] Compressed:        h264 :                H.264 : 640x360 1280x720 1920x1080

当我尝试将流发送到 RTMP 端点(nginx-rtmp)时,我使用以下选项来发送它:

ffmpeg -f video4linux2 -input_format h264 -i /dev/video0 -c:v libx264 -an -f flv rtmp://localhost:1935/desk/stream

但是,与删除相比,我没有看到编码中 CPU 的利用率有任何改善-input_format,这让我相信它仍在重新编码。

答案1

输出文件中的视频流是否编码完全取决于-codec该流的选项值。只有该值copy才会跳过重新编码;任何其他值或完全没有该选项都会强制重新编码,而不管源编解码器是什么。

所以-c:v libx264改为-c:v copy

-c是 的缩写-codec

相关内容