FFMPEG - Konversi video menjadi timelapse

15

Saya menggunakan ffmpeg di pembangun flash (skrip Aksi 3) untuk mengkonversi video ke selang waktu video. Saya telah bekerja bagaimana menggunakan setpts untuk melakukan ini, tetapi file output yang dihasilkan sama panjangnya dengan input (hanya dengan frame terakhir yang ditampilkan setelah selang waktu), saya ingin durasinya diubah berdasarkan pengaturan yang diteruskan. ke ffmpeg.

Saya mencoba di bawah ini melalui baris perintah terlebih dahulu:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

Bantuan apa pun akan sangat dihargai!

Sandwich
sumber

Jawaban:

19

Masalah terpecahkan. Saya tidak menghapus audio, jadi mungkin itu memutar, hampir kosong, file audio untuk waktu penuh video.

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

-an menghapus audio dari video.

Sandwich
sumber
1

Beberapa lebih detail di sini tentang mempercepat audio. Anda dapat melakukan hingga 2x, tetapi Anda bisa mengelabunya untuk mempercepat lebih banyak lagi ( sumber ):

Mempercepat / memperlambat audio

Anda dapat mempercepat atau memperlambat audio dengan filter audio atempo. Untuk menggandakan kecepatan audio:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

Filter atempo terbatas untuk menggunakan nilai antara 0,5 dan 2,0 (sehingga dapat memperlambatnya hingga tidak kurang dari setengah kecepatan asli, dan mempercepat hingga tidak lebih dari dua kali lipat input). Jika perlu, Anda dapat mengatasi batasan ini dengan merangkai beberapa filter atempo bersama-sama. Berikut ini dengan empat kali lipat kecepatan audio:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

Dengan menggunakan filtergraph yang kompleks, Anda dapat mempercepat video dan audio secara bersamaan:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

Matahari
sumber