📜  覆盆子 ffmpeg 网络摄像头记录 (1)

📅  最后修改于: 2023-12-03 14:57:21.787000             🧑  作者: Mango

简介

本文将介绍如何使用 Raspberry Pi 的摄像头并结合 FFMPEG 实现视频流捕捉和网络传输,同时记录捕捉到的视频。

覆盆子

Raspberry Pi 是一款基于 ARM 架构的微型电脑,使用起来非常方便,故在本项目中使用 Raspberry Pi 4 Model B 作为硬件平台。

FFmpeg

FFmpeg 是一款强大的开源视频处理工具,具有各种丰富的功能,可以用于视频编码/解码、视频合成、视频编辑、制作 GIF 等。其中我们关注的是 FFmpeg 的视频流捕捉和网络传输功能。

网络摄像头记录

将 Raspberry Pi 的摄像头连接到我们的主机并启动摄像头,使用以下命令来捕捉视频流:

$ raspivid -t 0 -w 1280 -h 720 -fps 25 -b 4000000 -o - | ffmpeg -i - -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -acodec aac -ab 128k -g 50 -strict experimental -f flv -r 25 rtmp://<your_stream_url>/<your_stream_key>

这里我们使用 raspivid 的输出直接输入到 FFMPEG 中,因此不会有任何硬盘 I/O 操作。

同时可以加上以下参数来记录视频流到本地磁盘:

$ raspivid -t 0 -w 1280 -h 720 -fps 25 -b 4000000 -o - | tee -a /path/to/output/video.h264 | ffmpeg -y -i - -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -acodec aac -ab 128k -g 50 -strict experimental -f flv -r 25 rtmp://<your_stream_url>/<your_stream_key> | tee -a /path/to/output/stream.log

这里使用 tee 命令将 raspivid 输出的原始数据保存到本地磁盘,同时也将 FFmpeg 输出的数据保存到本地磁盘。

结论

在本文中,我们介绍了如何使用 Raspberry Pi 和 FFmpeg 结合起来捕捉视频流并通过网络传输,同时记录视频流到本地磁盘。此外,本文提供给你的命令也许需要进行一些定制化以适应你的应用场景。