mengkonversi video berkecepatan tinggi ke normal dengan subsampling frame

5

Saya telah menemukan sejumlah aplikasi komersial yang dapat mengkonversi, misalnya, video "gerakan lambat" 120fps menjadi 30 fps dengan menulis setiap frame ke-n ke file video baru. Saya berharap alat freeware yang biasa seperti VLC atau rem tangan atau ffmpeg bisa melakukan ini untuk saya, tetapi saya akui tidak dapat melacak perintah untuk melakukannya. Saya menemukan sejumlah cara untuk mengekspor setiap bingkai ke-ke koleksi file gambar, tetapi saya lebih suka tidak harus melakukan itu dan mengikuti dengan menggabungkan ratusan atau ribuan jpg ke dalam file video baru.

Saya memang menemukan ini selang waktu jawaban yang menggunakan setpts jadi jika hanya itu yang perlu saya lakukan, tolong beri tahu saya (dengan atau tanpa bagian "you dope" :-)).

Carl Witthoft
sumber

Jawaban:

7

Jika Anda ingin mempertahankan waktu nyata, yaitu 1 detik aksi langsung dimainkan dalam 1 detik video, maka

ffmpeg -i input.mp4 -r 30 output.mp4

Ini akan menjatuhkan 3 dari setiap 4 frame.

Jika Anda ingin mempertahankan semua frame, tetapi siklus melalui mereka perlahan maka

ffmpeg -i input.mp4 -vf setpts=4*PTS -r 30 output.mp4
Gyan
sumber
Terima kasih. Apakah ini lebih disukai daripada ekspresi panjang di superuser.com/questions/573747/… yang menggunakan filter dengan select="mod(n-1\,2)" ?
Carl Witthoft
Kecuali video sumber adalah frame rate variabel, saya lebih suka perintah saya.
Gyan
1
Sayangnya, baris perintah pertama itu tidak berfungsi - file output masih bergerak - seperti yang Anda peringatkan, sepertinya input dianggap variabel frame rate, jadi jawabannya di baris kedua Anda, tetapi menggunakan setpts = PTS/4 mengkonversi input 120fps saya menjadi output real-time 30fps.
Carl Witthoft
Bagi saya, perintah kedua tidak mempertahankan frame. Saya mencoba memperlambat video 960fps dengan penyandian pada 60fps, tapi saya mendapatkan video yang lambat yang jelas menunjukkan bahwa frame-frame tersebut sedang jatuh.
haridsv
Mencoba ffmpeg -r 60 -i input.mp4 output.mp4
Gyan