일정 시간이 지난 후 녹화 중지 신호를받습니다. 그러나 1

와 웹캠을 사용하여 비디오를 녹화하는 장치가 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)


답변