Saya mencoba mengubah framerate dari video MP4 (ini adalah video GoPro 120fps, saya ingin memutarnya pada 30fps untuk efek gerakan lambat).
Saya menggunakan avconv untuk ini:
avconv -i SourceMovie.mp4 -vf setpts=4.0*PTS -r 30 DestMovie.mp4
Secara teknis itu berfungsi, tetapi ia memasukkan ulang film. Selain lambat, ini jelas masalah kualitas. Secara teknis harus ada cara untuk hanya mengatur fps di header video, bagaimana saya bisa mengubahnya? (Alat apa pun selain avconv juga berfungsi.)
video
avconv
video-conversion
EboMike
sumber
sumber
MP4Box -add source.mp4#video -raw 1 -new test
) dan kemudian simpan sebagai MP4 lagi (MP4Box -add test_track1.h264:fps=30 -new dest.mp4
). Anda dapat menambahkan trek audio juga di sana (melalui #audio).-single
opsi untuk perintah pertama.MP4Box -single 1 -raw 1 SourceMovie.mp4
hanya membuat satu file,SourceMovie_track1.h264
bukan dua.Mengubah framerate di header video (wadah) tidak berpengaruh pada videostream (atau audiostream) itu sendiri. Reencoding adalah satu-satunya pilihan.
Aliran video memiliki stempel waktu dan dalam sebagian besar video frame saling bergantung satu sama lain karena kompresi antar bingkai. Beberapa pemain dapat mempercepat dan memperlambat video tetapi tidak dengan perintah yang disematkan atau sesuatu. Tidak ada pemain yang dapat mengubah framerate dengan cepat ketika sebuah perintah kontainer meminta untuk melakukannya. Videofile akan keluar dari spesifikasi (mis. Tidak mengikuti standar) dan 99,9% pemain akan menolak untuk mematuhinya. Sangat tidak mungkin untuk melakukan apa yang Anda inginkan tanpa pengodean ulang. Tentu saja Anda bisa menunggu dengan pengodean ulang hingga langkah terakhir dalam pengeditan Anda.
sumber
Jika maksud utama Anda adalah memainkannya dalam gerakan lambat, dan tidak menyimpan file sebagai MP4, Anda dapat menggunakan alat GUI MKVmerge untuk melakukan remux ke dalam wadah Matroska yang dapat dengan mudah mengubah framerate. Remuxing jauh lebih baik daripada reencoding, karena hanya mengubah metadata, dan bukan stream itu sendiri.
Pertama Anda menginstal paket
Kemudian Anda memulai GUI MKVmerge. Anda akan dihadapkan pada jendela seperti ini
Cukup tekan tombol tambah dan pilih file Anda atau bahkan cukup seret-jatuhkan file ke area "Input file". Pada titik ini Anda harus dapat memilih aliran video di video Anda. Anda juga dapat menghapus aliran lain, karena mereka hanya akan menghalangi.
Setelah Anda memilihnya, Anda akan melihat tab bawah menjadi aktif:
Ubah ke "Format tindakan spesifik"
Anda dapat melihat bahwa ada bidang "FPS", di mana Anda dapat memasukkan nilai frame per detik. Sepertinya Anda berencana memperlambat segalanya empat kali, jadi sekitar 7 frame per detik akan menjadi tujuan Anda. Anda juga dapat menggunakan opsi "Regangkan oleh".
Setelah itu Anda tinggal mengubah nama file output (jika mau) dan tekan "Start muxing".
Program akan berjalan dan Anda harus memiliki file Anda.
sumber
Saya juga ingin memperlambat lossless dari 120 film FPS saya menjadi 30 FPS. Saya membuat skrip yang melakukannya dengan mengubah tempo suara dan memodifikasi FPS langsung dalam wadah MP4. Diperlukan alat berikut:
Skrip yang digunakan untuk konversi ada di sini:
Skrip ini membuat salinan MP4 dengan postfix _slow.
sumber