Bagaimana saya bisa mempercepat video tanpa distorsi nada di Linux?

8

Apa yang ingin saya capai adalah mendapatkan efek yang sama dengan yang saya dapatkan (dengan asumsi kecepatan 1,7x):

mplayer -af scaletempo -speed 1.7 myvideo.mp4

Perintah ini memberi saya apa yang saya inginkan, tetapi saya harus menyimpan hasilnya dalam file.

Yang tidak ingin saya dapatkan adalah ini:

mplayer -vf scale -speed 1.7 myvideo.mp4

Saya perlu ini dilakukan dalam file (file harus dikodekan ulang) karena saya harus memainkannya di luar kotak Linux.

CLI lebih disukai, karena saya ingin membuatnya dalam skrip. Dicari banyak dan menemukan banyak saran - ffmpeg, mencoder dan banyak alat eksotis lucu yang tidak dapat dikompilasi, tidak ada yang memberi saya hasil yang tepat. Sebenarnya hampir tidak ada yang berhasil (saya kira itu bekerja pada suatu waktu, dahulu kala).

Sayangnya saya memutakhirkan dan menggunakan Ubuntu 13.04 dan tampaknya hampir semua solusi tidak berfungsi dalam versi ini; (

Viacheslav Rodionov
sumber

Jawaban:

13

filter setpts & atempo

Contoh menggunakan ffmpegdengan setpts dan atempo filter:

Gerakan cepat

ffmpeg -i input -filter_complex "[0:v]setpts=PTS/2[v];[0:a]atempo=2[a]" -map "[v]" -map "[a]" output

Gerak lambat

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

Rentang untuk nilai atempo adalah 0,5-100.

filter setpts & rubberband

Atau Anda dapat menggunakan filter karet gelang alih-alih atempo, dan mungkin terdengar lebih baik, tetapi Anda ffmpegharus dikompilasi --enable-librubberband. Anda dapat merujuk untuk ffmpeg -filtersmelihat apakah Anda dapat menggunakannya.

Gerakan cepat

ffmpeg -i input -filter_complex "[0:v]setpts=PTS/2[v];[0:a]rubberband=tempo=2[a]" -map "[v]" -map "[a]" output

Gerak lambat

ffmpeg -i input -filter_complex "[0:v]setpts=PTS/0.5[v];[0:a]rubberband=tempo=0.5[a]" -map "[v]" -map "[a]" output
llogan
sumber
1
Anda benar-benar menyelamatkan saya. Bahkan tidak tahu bahwa ffmpeg di Ubuntu adalah sesuatu yang kuno. Saya menggunakan build statis, karena tidak ada ppa atau deb untuk 13,04 dan kompilasi terlihat sangat menyakitkan.
Viacheslav Rodionov
Ini bekerja dengan baik untuk saya. Terima kasih banyak!
Ryan
0

Coba ini:

Video:

mkfifo stream.yuv
mplayer -vf scale -speed 1.7 -vo yuv4mpeg source.avi

cat stream.yuv | yuv2lav -o result.avi

atau

ffmpeg -i source.avi -filter "setpts=PTS/1.7" result.avi

Audio:

mplayer -vf scale -speed 1.7 -vo null -ao pcm -ao pcm:file=result.wav source.avi

File hasil: result.avi, result.wav

September
sumber