一段时间后停止录音

一段时间后停止录音

我有一个使用网络摄像头录制视频的设备ffmpeg。它工作得很好,当开始录制时,我会收到 USR1 信号。停止录制后,我们会收到 USR2 信号。

但我想在1小时录音时间后停止录音。

我不知道,但我认为我必须在 1 小时后将 USR2 信号传递给设备。

那么我该怎么做...!!!

提前致谢。

答案1

使用该-t选项。来自man ffmpeg

-t持续时间(输入/输出)

当用作输入选项时(在 之前-i),限制期间从输入文件读取的数据。

当用作输出选项(在输出文件名之前)时,在输出持续时间达到后停止写入输出期间

期间必须是时间持续时间规范,请参阅ffmpeg-utils(1) 手册中的时间持续时间部分

-to并且-t互相排斥且-t具有优先权。

录制一小时的示例:

ffmpeg -f v4l2 -i /dev/video0 -t 01:00:00 output

或者以秒为单位:

ffmpeg -f v4l2 -i /dev/video0 -t 3600 output

答案2

如果您从命令行运行 ffmpeg 或 avconv,则可以使用以下timeout命令:

timeout 3600 avconv -f video4linux2 -r 25 -i /dev/video0  -vcodec mpeg4 -y out.mp4

答案3

如果你提前知道超时,你肯定应该使用给出的方法,但是,如果你真的想向进程发送信号,你可以使用命令(尽管 90% 用于 TERM 或 KILL,但可以发送任何信号 - kill -s USR2 pid)

相关内容