एक-लाइन कमांड वाले वीडियो का हिस्सा निकालें


81

अगर मैं एक वीडियो, सामान्य रूप से avi है, लेकिन किसी भी हो सकता है, और मैं उसी प्रारूप में एक दूसरे से लेकिन सिर्फ एक हिस्सा है, स्थिति बनाना चाहते हैं मैं करने के लिए सेकंड वीडियो में सेकंड, ऐसा करने के लिए एक पंक्ति का आदेश क्या है इस?

जवाबों:


114

इसका उपयोग करके mencoderऔर किया जा सकता है ffmpeg

mencoder

यह कहें कि आप 5 सेकंड की लंबाई के साथ मूल फ़ाइल में 00:00:30 से शुरू होने वाले भाग को काट देना चाहते हैं और इसे फिर से लोड नहीं किया जाना चाहिए (यदि आप इसे फिर से एनकोड करना चाहते हैं तो आपको copyऑडियो से बदलना होगा। और वीडियो कोडेक्स, उपलब्ध ऑडियो कोड्स की mencoder -oac helpसूची की सूची के लिए, उपलब्ध वीडियो कोडेक्स मुद्दे की सूची के लिए mencoder -ovc help), फिर आप जारी करते हैं:

mencoder -ss 00:30:00 -endpos 00:00:05 -oac copy -ovc copy originalfile -o newfile

आपको प्रतिस्थापित करना होगा orginalfileऔर newfileवास्तविक फ़ाइल नामों के साथ, बाद में उस फ़ाइल का नाम है जिसे कट आउट भाग को रखने के लिए बनाया गया है।

ffmpeg

मान लें कि आप मूल फ़ाइल में 5 सेकंड की लंबाई के साथ 00:00:30 से शुरू होने वाले भाग को काट देना चाहते हैं और इसे फिर से एन्कोडेड नहीं किया जाना चाहिए (यदि आप फिर से एनकोड करना चाहते हैं तो आपको इसे बदलना होगा। copyऑडियो और वीडियो कोडेक्स के साथ, उपलब्ध कोडेक्स की सूची के लिए ffmpeg -formats -E), फिर आप जारी करते हैं:

ffmpeg -ss 00:00:30 -i orginalfile -t 00:00:05 -vcodec copy -acodec copy newfile

आपको प्रतिस्थापित करना होगा orginalfileऔर newfileवास्तविक फ़ाइल नामों के साथ, बाद में उस फ़ाइल का नाम है जिसे कट आउट भाग को रखने के लिए बनाया गया है।


संदर्भ के लिए देखें http://lazyxiong-tech.blogspot.com/2007/05/using-mencoder-to-cut-out-pieces-of.html और "7. http में वीडियो का केवल एक भाग कॉपी करें" //। segfault.in/2010/10/ffmpeg-tricks-you-should-know-about/


मैंने इसे आजमाया और असफल रहा। क्या आप मुझे दिखा सकते हैं कि आपके विशिष्ट कोडेक्स के साथ avi, flv और mpg के लिए क्या कमांड आपके लिए होगी? मैं कोडेक्स सूचीबद्ध है, लेकिन यह बहुत समझ नहीं कर सका।
स्ट्रैपकोव्स्की

@strapakowsky यह इनपुट फ़ाइल और आपके द्वारा इंस्टॉल किए गए कोडेक्स पर निर्भर करता है। हो सकता है कि आपको उसके लिए एक नया प्रश्न बनाना चाहिए और आपको कौन सी फ़ाइल मिली है और आपने क्या कमांड की कोशिश की है, इसके बारे में जानकारी जोड़ें।
एनएन

@strapakowsky मैं ffmpeg के साथ काम करने के लिए इसे प्राप्त नहीं कर सकता, लेकिन ffmpeg के साथ पुर्जों को काटने के बारे में सभी मार्गदर्शिकाएँ बताती हैं कि इसे किसी तरह काम करना चाहिए ताकि मैं इसे अपने उत्तर में रख सकूँ। हालाँकि, मैंने एक mencoder लाइन भी जोड़ी है जो मुझे काम करने के लिए मिलती है।
एनएन

बस इसके एक संस्करण का उपयोग किया। इसके लिए आप क्योंकि काम नहीं कर रहा -ss ... -t ...जरूरतों होने के लिए पहले-i infile विकल्प। असली वन-लाइनर के लिए यह उत्तर देखें । आपने लगभग इसे प्राप्त कर लिया, बस आदेश नहीं ...
हेन्डी

1
@ हेंडी ने तदनुसार संपादित किया
एनएन

25

क्या आपको पुन: एन्कोडिंग के साथ या फिर से एन्कोडिंग मोड के बिना वीडियो को काटने की आवश्यकता है? आप नीचे दिए गए आदेश का पालन करने का प्रयास कर सकते हैं।

सिनॉप्सिस: ffmpeg -i [input_file] -ss [start_seconds] -t [period_seconds] [output_file]

फिर से एन्कोडिंग के बिना FFmpeg कट mp4 वीडियो का उपयोग करें

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4

फिर से एन्कोडिंग के साथ FFmpeg कट mp4 वीडियो का उपयोग करें

Example:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -async 1 -strict -2 cut_video.mp4

यदि आप शुरू से ही अनुभाग को काटना चाहते हैं, तो बस -t 00:00:10कमांड से ड्रॉप करें


0

मेडिपैक एक रैपर ओवर के रूप में एक बहुत ही सरल कमांड-लाइन ऐप है ffmpeg

आप इन आदेशों का उपयोग करके अपने वीडियो को ट्रिम कर सकते हैं:

medipack trim input.mp4 -s 01:04 -e 14:08 -o output.mp4
medipack trim input.mp4 -s 01:04 -t 13:04 -o output.mp4

आप ट्रिम उपकमांड के विकल्प देख सकते हैं:

srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]

positional arguments:
  inp                   input video file ex: input.mp4

optional arguments:
  -h, --help            show this help message and exit
  -s START, --start START
                        start time for cuting in format hh:mm:ss or mm:ss
  -e END, --end END     end time for cuting in format hh:mm:ss or mm:ss
  -t TIME, --time TIME  clip duration in format hh:mm:ss or mm:ss
  -o OUTPUT, --output OUTPUT

आप अन्य विकल्पों का भी पता लगा सकते हैं medipack -h

srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...

positional arguments:
  {trim,crop,resize,extract}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version number

आप README में https://github.com/srbcheema1/medipack और चेकआउट उदाहरण पर जा सकते हैं ।


-1

अधिक सटीक होने के लिए आप कर सकते हैं: MANUALLY फाइल को एक मीडिया प्लेयर में खोलें जो फ्रेम एडवांस के द्वारा फ्रेम करेगा (मेरे पसंदीदा लेकिन MPC-HC काम करता है) और डेटा के साथ एक AVISynth फाइल प्ले करें जैसे:

DirectShowSource(("C:\Downloads\Video\Do you want him.flv"), Pixel_Type="yuy2").Crop(0,0,-0,-0)
Subtitle("C:\Downloads\Video\Do you want him.flv", font="Arial", size=24, text_color=$ff0000, align=3)
ShowFrameNumber(scroll=true, x=336, y=27, font="Arial", size=24, text_color=$ff0000)

ShowTime(x=398, y=44, font="Arial", size=24, text_color=$ff0000)

फिर EXACT समय प्रारूप में कटौती करें:

ffmpeg -i "Path\do you want him.flv" -ss 00:00:05.240 -to 00:00:08.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him1.flv"

तथा

ffmpeg -i "Path\do you want him.flv" -ss 00:00:10.240 -to 00:00:14.360 -vcodec libx264 -acodec libvo_aacenc "Path\Do you want him2.flv"

यदि आप शामिल होना चाहते हैं, तो सामग्री के साथ वीडियो फ़ाइलों के साथ एक txt फ़ाइल बनाएं:

file 'C:\Downloads\Video\Do you want him1.flv'

file 'C:\Downloads\Video\Do you want him2.flv'

रन ffmpeg:

ffmpeg -f concat -i FileList.txt -c copy "Path\NewName_joined.flv"

PROGRAMMATICALLY मैंने एक कार्यक्रम लिखा है लेकिन इसे दिखाने के लिए कोई स्तर 10 नहीं है, क्षमा करें

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