Dừng ghi âm sau một khoảng thời gian


13

Tôi có một thiết bị ghi video bằng webcam ffmpeg. Nó hoạt động rất tốt, khi quá trình ghi được bắt đầu, tôi nhận được tín hiệu USR1. Và sau khi dừng ghi âm, chúng tôi nhận được tín hiệu USR2.

Nhưng tôi muốn dừng ghi âm sau 1 giờ ghi.

Tôi không biết nhưng tôi nghĩ rằng tôi phải truyền tín hiệu USR2 cho thiết bị sau 1 giờ.

Vậy làm thế nào tôi có thể làm điều này ... !!!

Cảm ơn trước.

Câu trả lời:


23

Sử dụng -ttùy chọn. Từ man ffmpeg:

-t thời lượng (đầu vào / đầu ra)

Khi được sử dụng làm tùy chọn đầu vào (trước -i), hãy giới hạn thời lượng đọc dữ liệu từ tệp đầu vào.

Khi được sử dụng làm tùy chọn đầu ra (trước tên tệp đầu ra), dừng ghi đầu ra sau khi thời lượng của nó đạt đến thời lượng .

thời lượng phải là một đặc tả thời lượng, xem phần Thời lượng trong hướng dẫn sử dụng ffmpeg-utils (1) .

-to-tloại trừ lẫn nhau và được -tưu tiên.

Ví dụ ghi lại trong một giờ:

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

Hoặc trong vài giây:

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

3
-tsử dụng cú pháp Thời lượng thời gian có sẵn tại đây: ffmpeg.org/ffmpeg-utils.html#Time-duration
Hengjie

5

Nếu bạn đang chạy ffmpeg hoặc avconv từ dòng lệnh, bạn có thể sử dụng timeoutlệnh:

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

0

Tuy nhiên, nếu bạn biết trước thời gian chờ, bạn chắc chắn nên sử dụng các phương thức đã cho, tuy nhiên, nếu bạn thực sự muốn gửi tín hiệu đến quy trình, bạn có thể sử dụng lệnh kill (mặc dù được sử dụng 90% cho TERM hoặc KILL, có thể gửi tín hiệu BẤT K - - tiêu diệt USR2 pid)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.