Saya tahu ini adalah pertanyaan lama tetapi tidak ada jawaban saat ini yang direkomendasikan.
Remuxing lossless (video)
Sebagaimana dicatat dalam komentar ada cara untuk melakukan ini di mana video tidak
harus dikodekan ulang. Ini membutuhkan remuxing file ke format MKV penampung yang berbeda dan kemudian remuxing kembali ke MP4. Berikut adalah contoh yang mengubah video menjadi 12 frame / detik:
mkvmerge --default-duration 0:12fps --fix-bitstream-timing-information 0 original-video.mp4 -o temp-video.mkv
ffmpeg -i temp-video.mkv -c:v copy slow-video.mp4
Jika video berisi audio, Anda juga dapat memperlambatnya tanpa mengubah nada, tetapi itu bukan konversi tanpa kerugian. Contoh di bawah ini mengasumsikan video sumber adalah 24 frame / detik sehingga audio perlu diperlambat hingga setengah (0,5) kecepatan menggunakan filter atempo ffmpeg .
mkvmerge --default-duration 0:12fps --fix-bitstream-timing-information 0 original-video.mp4 -o temp-video.mkv
ffmpeg -i temp-video.mkv -c:v copy -c:a aac -filter:a "atempo=0.5" slow-video-with-audio.mp4
Panduan Wiki FFMPEG
Ini adalah panduan dari wiki ffmpeg . Perhatikan bahwa semua opsi ini memang mengharuskan pengodean ulang video.
Mempercepat / memperlambat video
Anda dapat mengubah kecepatan aliran video menggunakan filter video setpts. Perhatikan bahwa dalam contoh berikut, aliran audio tidak berubah, sehingga idealnya harus dinonaktifkan dengan -an.
Untuk menggandakan kecepatan video, Anda dapat menggunakan:
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
Filter berfungsi dengan mengubah cap waktu presentasi (PTS) dari setiap bingkai video. Misalnya, jika ada dua frame berturut-turut yang ditampilkan di stempel waktu 1 dan 2, dan Anda ingin mempercepat video, stempel waktu tersebut harus masing-masing menjadi 0,5 dan 1. Jadi, kita harus mengalikannya dengan 0,5.
Perhatikan bahwa metode ini akan menjatuhkan frame untuk mencapai kecepatan yang diinginkan. Anda dapat menghindari frame yang terjatuh dengan menentukan frame rate output yang lebih tinggi dari input. Misalnya, untuk beralih dari input 4 FPS ke input yang dipercepat hingga 4x itu (16 FPS):
ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv
Untuk memperlambat video Anda, Anda harus menggunakan pengganda yang lebih besar dari 1:
ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
Halus
Anda dapat memuluskan video lambat / cepat dengan filter video minterpolate. Ini juga dikenal sebagai "interpolasi gerak" atau "aliran optik".
ffmpeg -i input.mkv -filter "minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120'" output.mkv
Pilihan lain termasuk slowmoVideo dan Butterflow. 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