क्या किसी अनिर्दिष्ट लंबाई वाले वीडियो की शुरुआत से एक्स सेकंड को ट्रिम करने के लिए ffmpeg का उपयोग करना संभव है?


20

मुझे अलग-अलग, अनिर्दिष्ट लंबाई की एफएलवी रिकॉर्डिंग की एक श्रृंखला के पहले 1 या 2 सेकंड की ट्रिमिंग करने की आवश्यकता है। मैंने एक वीडियो (जैसे 30 सेकंड क्लिप) से एक निर्दिष्ट अवधि निकालने के लिए बहुत सारे संसाधन पाए हैं, लेकिन वीडियो के अंत तक जारी रखने के लिए कोई भी नहीं।

ये दोनों प्रयास वीडियो के कॉपी किए गए संस्करण को प्रस्तुत करते हैं, जो वांछित ट्रिमिंग को कहते हैं:

ffmpeg -ss 2 -vcodec copy -acodec copy -i input.flv output.flv

ffmpeg -ss 2 -t 120 -vcodec copy -acodec copy -i input.flv output.flv

दूसरे एक पर सोचा गया था: शायद अगर मैंने जो संभव था उससे परे एक लंबाई निर्दिष्ट की, तो यह अंत में जाएगा। कोई पाँसा नहीं।

मुझे पता है कि यह कोडेक के साथ एक समस्या नहीं है या सेकंड के बजाय सेकंड का उपयोग करने के बाद से निम्नलिखित एक काम किया है:

ffmpeg -ss 2 -t 5 -vcodec copy -acodec copy -i input.flv output.flv

कोई अन्य विचार? मैं अन्य (विंडोज़-आधारित) कमांड लाइन टूल का उपयोग करने के लिए खुला हूं, हालांकि मैं ffmpeg का दृढ़ता से समर्थन कर रहा हूं क्योंकि मैं इसे पहले से ही थंबनेल निर्माण के लिए उपयोग कर रहा हूं और इससे परिचित हूं।

यदि यह मदद करता है, तो मेरे वीडियो सभी 2 मिनट से कम होंगे।

अपडेट करें:

मैंने Mencoder ( http://www.mplayerhq.hu/ ) का उपयोग करने के लिए स्विच किया है क्योंकि ऐसा लगता है कि ffmpeg कुछ अतिरिक्त हैकरी के बिना इसे पूरा नहीं करेगा।

मैं क्या करने के लिए बाहर सेट करने के लिए Mencoder सिंटैक्स है:

mencoder.exe -ss 2 -oac copy -ovc copy input.flv -o output.flv

तो जो आप पसंद करते हैं; mencoderउदाहरण के लिए, ऊपर; या ffmpegउदाहरण, नीचे?
आवाज

जवाबों:


16

प्रयत्न:

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

मुझे लगता है कि इनपुट पैरामीटर पहले माना जाता है।


जवाब के लिए धन्यवाद। मैं जिस पैरामीटर का उपयोग कर रहा हूं, वह उसी परिणाम प्रदान करता है, इसलिए मुझे नहीं लगता कि यह आदेश है। Ffmpeg पर देने के बाद, मेरा कीफ़्रेम अंतराल अन्य उपकरणों के साथ समस्या पैदा कर रहा था। अभी इसे फिर से देखने के बाद, यह सब के बाद कीफ्रेम अंतराल था। यह 5 सेकंड पहले सेट किया गया था और मैंने इसे 1 सेकंड के लिए सेट कर दिया है। 5 सेकंड में, आपके आदेश और मैंने जिन दोनों को ऊपर की कोशिश की थी, वे शुरुआत में काली जगह (3 सेकंड के लायक, बिना सोचे समझे) की उपज थे। 1 सेकंड में, यह उम्मीद के मुताबिक काम करता है।
मार्सिलेब्रेट

यह एमपी 3 के लिए भी काम करता है
16

4
जैसा कि एफएफएमईजी सीकिंग में बताया गया है , -iकॉपी करते समय इनपुट पैरामीटर (पहले ) के रूप में -सी का उपयोग करना, या एफएफएमपीपी के पुराने संस्करण के साथ ट्रांसकोडिंग करना, कीफ्रेम की मांग करना। यह बहुत तेज़ है, लेकिन सटीकता की बलि देता है। यदि आप इसे आउटपुट पैरामीटर के रूप में उपयोग करते हैं, तो प्रक्रिया संभावित रूप से बहुत धीमी है (इनपुट छूटे हुए हिस्सों के लिए भी फ्रेम द्वारा डिकोड किया गया है), लेकिन सटीक। प्रश्न पुराना होने के बावजूद, मुझे लगता है कि यह स्वीकृत उत्तर होना चाहिए।
जोनाथन वाई।

23

उम्मीद के मुताबिक यह कमांड 2 सेकंड से वीडियो को ट्रिम कर देगा :

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

समस्या इनपुट.फ्लव में कीफ्रेम अंतराल के साथ थी। यह 5 सेकंड के लिए सेट किया गया था, जिसमें वीडियो (5 - 2 = 3) की शुरुआत में काले फ्रेम के 3 सेकंड का मूल्य था। मैंने तब से अपने कीफ़्रेम अंतराल को 1 सेकंड में बदल दिया है, हालांकि 2 सेकंड भी शायद मेरे मामले में वांछित परिणाम प्राप्त करेंगे।

अद्यतन: डेव के उत्तर के लिए प्रतिमान -iऔर -ssमापदंडों का अद्यतन करना , जिसे मैंने क्रेडिट के लिए स्वीकार किया है।


2
मैं इस मुद्दे को भी कर रहा था। यह पोस्ट मेरे लिए किया। मैंने गोली चलाई और -vcodec copy -acodec copyअपने सभी एडिटिंग कमांड के लिए उपयोग करने की कोशिश करना बंद कर दिया । री-एन्कोडिंग ने मेरे वीडियो की शुरुआत से काले फ्रेम को रोका या सही स्थान पर नहीं काटने दिया ( पुन: एन्कोडिंग के बिना एक सेकंड का अंतर वीडियो में लगभग 5 सेकंड के अंतर का अनुवाद कर रहा था)। तो, मैं के -vcodec copyसाथ की जगह खत्म हो गया -vcodec libx264 -crf 0
हेन्डी

2
मुझे बस इसी बात का सामना करना पड़ा। मुझे पता चला कि मैं सिर्फ -vcodec copyइसलिए नहीं कर सकता क्योंकि स्लाइस एक कीफ़्रेम पर शुरू नहीं होता है। मुझे अगले कीफ़्रेम तक N सेकंड के लिए स्टिल इमेज या ब्लैक इमेज मिल रही थी। अगर मैं वास्तव में कॉपी के बजाय फिर से एनकोड करता हूं, तो यह उम्मीद के मुताबिक काम करता है। भले ही मेरे इनपुट और आउटपुट दोनों H264 हैं, फिर भी मुझे फिर से एनकोड करने ( -vcodec libx264इसके बजाय -vcodec copy) का उपयोग करने की आवश्यकता थी ।
कार्ल विल्बर

Daves उत्तर ffmpeg के नवीनतम संस्करण के रूप में सही है। -iपहले आना चाहिए -ss
तीक्ष्ण कटक


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.