एक MP4 फ़ाइल को विभाजित करना


34

MP4 फ़ाइल को विभाजित करने के लिए सबसे तेज़ और सबसे कम संसाधन खपत विधि क्या है?

मैं ffmpeg की कोशिश की, लेकिन एक त्रुटि मिली:

$ ffmpeg -vcodec copy -ss 0 -t 00:10:00 -i /home/asafche/Videos/myVideos/MAH00124.MP4 /home/asafche/Videos/myVideos/eh.mp4
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5.1-1ubuntu1.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Mar 31 2011 18:53:20, gcc: 4.4.3

Seems stream 0 codec frame rate differs from container frame rate: 119.88 (120000/1001) -> 59.94 (60000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/asafche/Videos/myVideos/MAH00124.MP4':
  Duration: 00:15:35.96, start: 0.000000, bitrate: 5664 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 1280x720, 59.94 tbr, 59.94 tbn, 119.88 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16
Output #0, mp4, to '/home/asafche/Videos/myVideos/eh.mp4':
    Stream #0.0(und): Video: libx264, yuv420p, 1280x720, q=2-31, 90k tbn, 59.94 tbc
    Stream #0.1(und): Audio: 0x0000, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1

मैं क्या गलत कर रहा हूँ और मैं कैसे एक mp4 फ़ाइल को ठीक से विभाजित करूँ?


क्या आप कृपया हमें कारण बता सकते हैं कि आपको फ़ाइल को विभाजित करने की आवश्यकता है? क्या यह फ़ाइल के हिस्सों को साझा करना, या खेलना है? या कोई और कारण?
theTuxRacer

यह YouTube पर अपलोड करने के लिए है, इसलिए आपका दूसरा सुझाव है - फ़ाइल के कुछ हिस्सों को
बजाएं

जवाबों:


62

Ffmpeg के साथ आप निम्न कमांड का उपयोग करके फाइल को विभाजित कर सकते हैं:

ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss START -t LENGTH OUTFILE.mp4

जहां START सेकंड या प्रारूप hh में प्रस्तुत करना शुरू कर रहा है: mm: ss LENGTH सेकंड या स्वरूप hh में मिमी लंबाई है: mm: ss

तो आपको अपने वीडियो को कितने समय के आधार पर इस कमांड को कुछ बार चलाना होगा। यदि आप कहते हैं कि आपका वीडियो 31 मिनट लंबा है और आप चाहते हैं कि 15 मिनट की दूरी पर यहाँ कैसे आप इसे चलाएं:

ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 0 -t 00:15:00 OUTFILE-1.mp4
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 00:15:00 -t 00:15:00 OUTFILE-2.mp4
ffmpeg -i ORIGINALFILE.mp4 -acodec copy -vcodec copy -ss 00:30:00 -t 00:15:00 OUTFILE-3.mp4

एक पायथन लिपि है जिसका उपयोग आप स्वचालित रूप से करते हैं (यानी सेकंड में वीडियो फ़ाइल, चंक का आकार लेता है और अलग-अलग बजाने योग्य वीडियो फ़ाइलों को उत्पन्न करता है): http://icephoenix.us/notes-for-myself/auto.7plplitting-video -file में बराबर-मात्रा-साथ-ffmpeg और अजगर /


धन्यवाद, लेकिन मैं इस के साथ आगे की मदद की जरूरत है। मेरे जवाब में मैंने जो संपादन किया है, उसे देखें।
आसफ चर्टकॉफ

1
यह मेरे लिए काम किया: ffmpeg -ss 00:05:00 -t 00:16:00 -i largfile.MP4 -acodec copy -vcodec copy smallfile.MP4 क्या कोई इसकी व्याख्या कर सकता है?
आसफ चर्टकॉफ

मैं यहाँ थोड़ा अटकलें लगाने जा रहा हूँ, लेकिन ऐसा लगता है कि आपकी स्रोत फ़ाइल फ्रैमरेट से एन्कोडेड है कि libx264 समर्थन नहीं करता है, इसलिए यह फ़्रेम को बंद कर देता है। मुझे लगता है कि यह ठीक काम करना चाहिए, लेकिन इसकी वजह से ऑडियो में कुछ गड़बड़ी हो सकती है।
एलेक्स

शायद। देखेंगे ...
आसफ चर्टकॉफ

1
आसफ की कमान ने मेरे लिए भी काम किया। ऐसा लगता है कि इनपुट ऑप्शन इनपुटफाइल के बाद आना चाहिए।
डेथिब 8

10

यदि आप एक gui का उपयोग करना पसंद करते हैं तो रिपॉजिटरी में उपलब्ध avidemux है। कट पॉइंट्स को परिभाषित करना इस तरह से बहुत आसान है!

चयन मार्कर वीडियो के उस भाग को परिभाषित करते हैं, जिसे निर्यात किया जाएगा, ऑडियो और वीडियो में "कॉपी" का उपयोग करके रेनकोडिंग से बचा जाता है। आप कंटेनर भी चुन सकते हैं या इसे बदल सकते हैं (AVI, mp4, mkv, आदि)।

मैं एक कैमरे से कुछ वीडियो पर कटौती का एक गुच्छा किया है और यह तात्कालिक था!


2
AVIDemux को Ubuntu 16.04 के रिपॉजिटरी से हटा दिया गया है।
naXa

5

सुनिश्चित नहीं हैं कि अपनी जरूरत है, लेकिन आप एक टर्मिनल में इस टाइप कर सकते हैं: एक टर्मिनल खोलने के लिए, प्रेस Ctrl+ Alt+T

split -b 4M file.mp4 part_file

यह फ़ाइलों को 4 मेगाबाइट के विखंडू में विभाजित करेगा। फ़ाइल को फिर से बनाने के लिए, टाइप करें

cat part_file[a-c] > file.mp4

ध्यान दें कि मैंने a-cब्रैकेट में टाइप किया है, क्योंकि विभाजन ने 3 फाइलें बनाई हैं। आपके मामले में आपको अधिक देखना पड़ सकता है। मैं एक उदाहरण के साथ समझाऊंगा।

$ ls -lh
-rwxr-xr-x 1 root        root        9.3M 2011-04-17 20:09 file.mp4

इससे पता चलता है कि मेरे पास एक एकल फाइल है, 9.3 एमबी की। विभाजित करने के लिए, मैं टाइप करता हूं:

$ split -b 2M file.mp4 part_file

बंटवारे के बाद, मुझे फाइलें इस प्रकार मिलती हैं:

$ ls -lh
-rwxr-xr-x 1 root        root        9.3M 2011-04-17 20:09 file.mp4
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileaa
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileab
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_fileac
-rw-r--r-- 1 thetuxracer thetuxracer 2.0M 2011-04-17 20:12 part_filead
-rw-r--r-- 1 thetuxracer thetuxracer 1.3M 2011-04-17 20:12 part_fileae

फ़ाइल नाम में संलग्न दो वर्णों पर ध्यान दें।

फ़ाइल वापस पाने के लिए:

$ cat part_filename[start-end][start-end] > file.mp4

3
यह विधि बहुत जल्दी होगी लेकिन आपको व्यक्तिगत विखंडू खेलने की अनुमति नहीं देगी। आप किसी वीडियो फ़ाइल के कुछ हिस्सों को निकालने के लिए ffmpeg का उपयोग कर सकते हैं, लेकिन इसे कई छोटे चंक्सों में स्वचालित रूप से विभाजित करने के लिए जो कि सभी को व्यक्तिगत रूप से बजाने के बिना हैं उन्हें पूरी तरह से पुन: प्रस्तुत करने के बिना आपको संभवतः एक mp4 फ़ाइल के साथ एक स्क्रिप्ट लिखने की आवश्यकता होगी। यदि आप चाहें तो मैं आपको एक उदाहरण दे सकता हूं, लेकिन अगर इसके फ़ाइल को चारों ओर ले जाना है तो यह उत्तर अच्छा है।
स्लिपस्ट्रीम

@Slipstream - आप इसे सही है - मैं इसे यूट्यूब के लिए विभाजित करने की आवश्यकता है। मेरा कैमरा MP4 तैयार कर रहा है, लेकिन मुझे उन कारणों को विभाजित करने की आवश्यकता है जो वे लंबे समय तक हैं फिर 15 मिनट की अनुमति है।
आसफ चर्टकॉफ

तो आप नीचे एलेक्स का जवाब चाहते हैं ...
स्लिपस्ट्रीम

5

Mkvtmernix पैकेज से mkvmerge का उपयोग करें। जैसे कुछ का उपयोग करें

mkvmerge -o outputprefix --split 1G origfile.mp4

यह आपकी फ़ाइल को 1 जीबी ब्लॉक में विभाजित करेगा। आप समय-संकेतों का भी उपयोग कर सकते हैं।


मैंने इसे पहले कभी इस्तेमाल नहीं किया लेकिन कोशिश की: शानदार! त्वरित गति और सब कुछ पठनीय रहता है। धन्यवाद!
tuk0z

यदि आप एक आकार निर्दिष्ट करना चाहते हैं तो यह विशेष रूप से उपयोगी है। धन्यवाद!
BBQ सिंगर

0

यदि यह एक MP4 भाग 2 है, तो एक बहुत ही सावधानीपूर्वक दृष्टिकोण के साथ, आप फ़ाइल को एनकोडर / डिकोडर के बिना आगे बढ़ा सकते हैं। यह उत्तर एक प्रोग्रामिंग पृष्ठभूमि और एक हेक्स संपादक वाले लोगों के लिए अभिप्रेत है जो फ़ाइल को "" बरकरार "" रखना चाहते हैं।

फ़ाइल का पहला भाग एक mdat है, दूसरा एक moov है, जिसमें डिकोडर द्वारा इस्तेमाल किया जाता है, जिसमें विखंडन द्वारा चंक का पता लगाया जाता है, जिसमें नमूने होते हैं (एन्कोडेड चित्र और ध्वनि, जो जानना महत्वपूर्ण नहीं है)। फिर STCO, STTS, STSC आदि होते हैं। इसे "परमाणु" कहा जाता है। वे संकेत देते हैं कि प्रत्येक खंड के ऑफसेट, लंबाई आदि क्या हैं। यदि आप एक साफ काम करते हैं, तो आप अपने वीडियो के कई उदाहरण बना सकते हैं, और विभिन्न संस्करणों के साथ अलग-अलग संस्करण। फ़ाइल तब खिलाड़ियों में खेलने योग्य होगी, और वीडियो वेबसाइटों पर पच जाएगी। यदि आप एक कोडर हैं, तो MP4 पार्सर का निर्माण करें या भागों और उनके ऑफ़सेट्स का ट्रैक रखने के लिए मौजूदा एक का उपयोग करें। यह आपको प्रारूप के बारे में अधिक जानने और फ़ाइलों को स्वचालित रूप से पुनर्निर्माण करने में मदद करेगा।


0

सबसे आसान और आसान तरीका MP4Box का उपयोग करना है:

  1. # apt install gpac
  2. $ MP4Box -split 15 /home/asafche/Videos/myVideos/MAH00124.MP4(पैरामीटर सेकंड में समय है)। अन्य विभाजन की संभावनाओं के लिए, उदाहरण के लिए आकार देखें https://gpac.wp.imt.fr/mp4box/mp4box-documentation/ याMP4Box -h general

वैराग्य भी इसी तरह सरल है।


0

एक अन्य ओपन-सोर्स GUI टूल , जो वीडियो को विभाजित कर सकता है, और बहुत कुछ कर सकता है, हैंडब्रेक है

उदाहरण के लिए, यहां मैं अपने वीडियो को 24.53 (मिमी: ss) पर विभाजित कर रहा हूं, और दाईं ओर फ्रेम को क्रॉप भी कर रहा हूं: यहाँ छवि विवरण दर्ज करें

आप आउटपुट का पूर्वावलोकन आसानी से देख सकते हैं - "पूर्वावलोकन" बटन के साथ।

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