Hentikan perekaman setelah beberapa periode waktu


13

Saya memiliki perangkat yang merekam video menggunakan webcam dengan ffmpeg. Ini bekerja dengan baik, ketika rekaman dimulai saya mendapatkan sinyal USR1. Dan setelah menghentikan rekaman, kami menerima sinyal USR2.

Tapi saya ingin menghentikan rekaman setelah 1 jam waktu perekaman.

Saya tidak tahu, tetapi saya pikir saya harus melewati sinyal USR2 ke perangkat setelah 1 jam.

Jadi bagaimana saya bisa melakukan ini ... !!!

Terima kasih sebelumnya.

Jawaban:


23

Gunakan -topsi. Dari man ffmpeg:

-t durasi (input / output)

Saat digunakan sebagai opsi input (sebelum -i), batasi lamanya data dibaca dari file input.

Ketika digunakan sebagai opsi keluaran (sebelum nama file keluaran), berhenti menulis keluaran setelah durasinya mencapai durasinya .

durasi harus berupa spesifikasi durasi waktu, lihat bagian Durasi waktu dalam manual ffmpeg-utils (1) .

-todan -tsaling eksklusif dan -tmemiliki prioritas.

Contoh yang merekam selama satu jam:

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

Atau dalam hitungan detik:

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

3
-tmenggunakan sintaks Durasi Waktu yang tersedia di sini: ffmpeg.org/ffmpeg-utils.html#Time-duration
Hengjie

5

Jika Anda menjalankan ffmpeg atau avconv dari baris perintah, Anda bisa menggunakan timeoutperintah:

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

0

Jika Anda tahu sebelumnya batas waktu Anda harus menggunakan metode yang diberikan, namun, jika Anda benar-benar ingin mengirim sinyal ke proses, Anda dapat menggunakan perintah kill (meskipun digunakan 90% untuk TERM atau KILL, dapat mengirim sinyal APA PUN - kill -s USR2 pid)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.