मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन वर्तमान उत्तरों में से कोई भी अब अनुशंसित तरीका नहीं है।
दोषरहित (वीडियो) रीमेकिंग
जैसा कि टिप्पणियों में उल्लेख किया गया है, ऐसा करने का एक तरीका है जहां वीडियो
को फिर से एनकोड नहीं करना पड़ता है । यह जरूरी है remuxing एक अलग containter प्रारूप MKV करने के लिए फ़ाइल और फिर इसे एक MP4 में वापस remuxing। यहाँ एक उदाहरण है जो एक वीडियो को 12 फ़्रेम / सेकंड में बदलता है:
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
यदि वीडियो में ऑडियो है तो आप पिच को बदले बिना उसे धीमा भी कर सकते हैं, लेकिन यह दोषरहित रूपांतरण नहीं है। नीचे दिया गया उदाहरण स्रोत वीडियो को 24 फ्रेम / सेकंड मानता है ताकि ffmpeg के एटेम्पो फिल्टर का उपयोग करके ऑडियो को आधा (0.5) गति से धीमा करने की आवश्यकता हो ।
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
एफएफएमपीजी विकी गाइडेंस
यह ffmpeg विकि से मार्गदर्शन है । ध्यान दें कि इन सभी विकल्पों में वीडियो को फिर से एन्कोडिंग करने की आवश्यकता होती है।
वीडियो को गति देना / धीमा करना
आप सेटिफ़ वीडियो फ़िल्टर का उपयोग करके वीडियो स्ट्रीम की गति को बदल सकते हैं। ध्यान दें कि निम्नलिखित उदाहरणों में, ऑडियो स्ट्रीम नहीं बदला गया है, इसलिए इसे आदर्श रूप से -an के साथ अक्षम किया जाना चाहिए।
वीडियो की गति को दोगुना करने के लिए, आप इसका उपयोग कर सकते हैं:
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
फ़िल्टर प्रत्येक वीडियो फ्रेम की प्रस्तुति टाइमस्टैम्प (PTS) को बदलकर काम करता है। उदाहरण के लिए, अगर टाइमस्टैम्प 1 और 2 में दो आत्मघाती फ्रेम दिखाए गए हैं, और आप वीडियो को गति देना चाहते हैं, तो उन टाइमस्टैम्प को क्रमशः 0.5 और 1 बनने की आवश्यकता है। इस प्रकार, हमें उन्हें 0.5 से गुणा करना होगा।
ध्यान दें कि यह विधि वांछित गति प्राप्त करने के लिए फ़्रेम को गिरा देगी। आप इनपुट की तुलना में उच्च आउटपुट फ्रेम दर निर्दिष्ट करके गिराए गए फ़्रेम से बच सकते हैं। उदाहरण के लिए, 4 एफपीएस के इनपुट से जाने के लिए जो 4x तक स्प्रेड है (16 एफपीएस):
ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv
अपने वीडियो को धीमा करने के लिए, आपको 1 से अधिक गुणक का उपयोग करना होगा:
ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
चिकना
आप मिन्टरपोलेट वीडियो फिल्टर के साथ धीमी / तेज वीडियो को आसानी से बाहर निकाल सकते हैं। इसे "गति प्रक्षेप" या "ऑप्टिकल प्रवाह" के रूप में भी जाना जाता है।
ffmpeg -i input.mkv -filter "minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120'" output.mkv
अन्य विकल्पों में स्लोमोविडियो और बटरफ्लो शामिल हैं। ऑडियो को तेज़ / धीमा करना
आप एटमपो ऑडियो फ़िल्टर के साथ ऑडियो को गति या धीमा कर सकते हैं। ऑडियो की गति को दोगुना करने के लिए:
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
एटेम्पो फिल्टर 0.5 और 2.0 के बीच मूल्यों का उपयोग करने के लिए सीमित है (इसलिए यह इसे कम से कम मूल गति से कम नहीं कर सकता है, और इनपुट से दोगुना से अधिक नहीं हो सकता है)। यदि आप की जरूरत है, तो आप एक साथ कई atempo फिल्टर स्ट्रिंग द्वारा इस सीमा के आसपास प्राप्त कर सकते हैं। ऑडियो गति को चौगुनी करने के साथ निम्नलिखित है:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv
एक जटिल फ़िल्टरग्राफ का उपयोग करके, आप एक ही समय में वीडियो और ऑडियो को गति दे सकते हैं:
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