와 웹캠을 사용하여 비디오를 녹화하는 장치가 ffmpeg
있습니다. 녹음이 시작되면 USR1 신호가 나타납니다. 그리고 녹음을 중단 한 후 USR2 신호를받습니다.
그러나 1 시간의 녹음 시간 후에 녹음을 중지하고 싶습니다.
잘 모르겠지만 1 시간 후에 USR2 신호를 장치로 전달해야한다고 생각합니다.
어떻게해야합니까 … !!!
미리 감사드립니다.
답변
-t
옵션을 사용하십시오 . 보낸 사람 man ffmpeg
:
-t
기간 (입력 / 출력)입력 옵션으로 사용되는 경우 (이전
-i
) 입력 파일에서 읽는 데이터 의 지속 시간 을 제한 하십시오.출력 옵션 (출력 파일 이름 이전)으로 사용될 경우 지속 시간이 duration에 도달 한 후 출력 쓰기를 중지하십시오 .
duration 은 지속 시간 사양이어야합니다 . ffmpeg-utils (1) 매뉴얼의 지속 시간 섹션을 참조하십시오 .
-to
및-t
상호 배타적와-t
우선 순위를가집니다.
1 시간 동안 기록하는 예 :
ffmpeg -f v4l2 -i /dev/video0 -t 01:00:00 output
또는 몇 초 안에 :
ffmpeg -f v4l2 -i /dev/video0 -t 3600 output
답변
명령 행에서 ffmpeg 또는 avconv를 실행중인 경우 다음 명령을 사용할 수 있습니다 timeout
.
timeout 3600 avconv -f video4linux2 -r 25 -i /dev/video0 -vcodec mpeg4 -y out.mp4
답변
타임 아웃을 미리 알고 있다면 주어진 방법을 명확하게 사용해야하지만 프로세스에 신호를 보내려면 kill 명령을 사용할 수 있습니다 (TERM 또는 KILL에 90 %를 사용하더라도 모든 신호를 보낼 수 있음- kill -s USR2 pid)