【问题标题】:How to record video and audio frames using ffmpeg如何使用 ffmpeg 录制视频和音频帧
【发布时间】:2021-04-12 07:24:09
【问题描述】:

如何使用 FFMPEG 从网络摄像头连续每 40 毫秒将视频和音频记录在单独的文件中,最长 10 秒?

谢谢。

【问题讨论】:

标签: ffmpeg


【解决方案1】:

第 1 步:网络摄像头捕获

正如 cmets 中已经提到的,请按照此说明进行音频捕获。 How can I capture audio AND video simultenaous with ffmpeg from a linux USB capture device
我们从他的开始:

./ffmpeg -f alsa -i hw:0 -f video4linux2 -i /dev/video0

更多细节在FFmpeg documentation中解释。

第 2 步:细分

./ffmpeg -f alsa -i hw:0 -f video4linux2 -i /dev/video0 -t 0:10 -segment_time 00:00.040 -f segment out_%003d.mp4
  • -t 0:10 仅记录 10 秒
  • -segment_time 00:00.040 每 40 毫秒拆分一次
  • -f segment 使用分段格式
  • out_%03d.mp4 输出文件名模板(%03d 用于更好的格式;001、002、003 等)

这里又是FFmpeg documentation for segmentation 的链接。

【讨论】:

  • 感谢您的详细解释。除了上面的命令,我必须添加什么来生成像 out_%3d.aac 这样的相应 aac 音频文件?如果我想要 h264 格式的视频格式,我应该添加 libx264 还是直接命名为 out_%3d.h264?
  • FFmpeg 尝试根据文件扩展名自动检测编解码器(因此 .h264 和 .aac 应该可以工作)。您还可以明确告诉 FFmpeg 使用特定的编解码器:-c:v libx264-c:a aac
  • 好的。所以现在命令是 ./ffmpeg -f alsa -i hw:0 -c:a aac -t 0:10 -segment_time 00:00.040 -f segment audio_%003d.aac -f video4linux2 -i /dev/video0 - c:v libx264 -t 0:10 -segment_time 00:00.040 -f segment out_%003d.h264 这样对吗?
  • 命令执行了吗?我没有带摄像头的linux系统,所以无法为你测试。通常,您首先定义所有输入,然后定义处理:./ffmpeg -f alsa -i hw:0 -f video4linux2 -i /dev/video0 -c:a aac -t 0:10 -segment_time 00:00.040 -f segment audio_%003d.aac -c:v libx264 -t 0:10 -segment_time 00:00.040 -f segment out_%003d.h264
  • 我已经执行了这个命令,但是它只生成了27个音频文件和2个视频文件。根据计算,我需要每秒钟获取 25 个音频和视频文件,并且在 10 秒内需要获取 250 个音频和视频文件。
猜你喜欢
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多