विंडोज़ पर iOS उपकरणों के साथ संगत MP4 वीडियो को MKV वीडियो में कैसे परिवर्तित करें?


10

मैं FFmpeg (विंडोज) के लिए नया हूं, और कुछ मदद की जरूरत है।

मैं अपने MKV को MP4 में क्वालिटी में कम नुकसान के साथ बदलना चाहता हूं। MKV को MakeMKV के साथ बनाया गया है और इसमें अन्य डीटीएस साउंडट्रैक शामिल हैं। वे दोषरहित हैं। जिस कारण से मैं रूपांतरण करना चाहता हूं, वह यह है कि मैं इसे आईपैड और ऐप्पल टीवी पर स्ट्रीम करने की योजना बना रहा हूं। आईपैड डीटीएस और एमकेवी का समर्थन नहीं करते हैं। MKV डीवीडी और ब्लू-रे दोनों हैं। MKV में वीडियो, साउंडट्रैक और उपशीर्षक होते हैं।

मैंने यह कोशिश की है, लेकिन डीटीएस साउंडट्रैक के कारण कोई आवाज़ नहीं आती है:

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

कोई भी मेरी मदद कर सकता हैं?

कोडेक्स मुझे क्या उपयोग करना चाहिए? MP4 Apple के लिए सबसे अच्छा है?


1
क्या विशिष्ट iPad और Apple टीवी संस्करण हैं जिन्हें आप लक्षित कर रहे हैं, या क्या आप उन सभी का समर्थन करना चाहते हैं?
लल्गन

2
नोट: MP4 एक कोडेक नहीं है। यह सिर्फ एक फ़ाइल प्रारूप (एक "कंटेनर") है।
slhck

मेरे पास सबसे नया आईपॉड एयर है। मेरे पास सबसे नया Apple टीवी है। मुझे पता है कि MP4 एक कंटेनर है और एक कोडेक नहीं है :)
स्ट्राइक

कृपया अपने किसी विशिष्ट इनपुट के बारे में कुछ जानकारी शामिल करें। पूरा कंसोल आउटपुट ffmpeg -i input.mkvपर्याप्त होगा।
ललगन

मैंने कोशिश की है ffmpeg -i input.mkv -c: v copy -c: a copy output.mp4 यह तो चला लेकिन सेब के DTS नहीं खेलने से कोई आवाज नहीं आई। Ffmpeg -i input.mkv -strict प्रयोगात्मक -c: v copy -c: aac -b: a 192k -q: a 6 output.mp4: लेकिन फिल्म (वीडियो और ध्वनि दोनों) मेरे लिए सुचारू नहीं थी iPad Air (स्ट्रीम और डाउनलोड दोनों)।
स्ट्राइक

जवाबों:


22

MP4 वास्तव में Apple उपकरणों और सॉफ्टवेयर के लिए सबसे अच्छा प्रारूप है। DTS भी वास्तव में समर्थित नहीं है, कई MP4 वीडियो फ़ाइलों में दो ऑडियो ट्रैक, एक DTS और एक AAC शामिल हैं।

वहाँ कई एनकोडर उपलब्ध हैं, उन सभी को ffmpeg विकि पर प्रलेखित किया गया है । कौन सा कोडेक उपलब्ध है यह इस बात पर निर्भर करता है कि ffmpeg कैसे संकलित किया गया था। libfdk_aac आपको सर्वश्रेष्ठ परिणाम देगा, लेकिन यह कोडेक गैर-मुक्त होने के कारण यह हमेशा उपलब्ध नहीं होता है।

वे चीज़ें जो आप आज़मा सकते हैं (मैंने उन्हें अपनी कथित गुणवत्ता के क्रम में रखा, सबसे अच्छा पहले)

ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -b:a 128k output.mp4
ffmpeg -i input.mkv -strict experimental -c:v copy -c:a aac -b:a 192k output.mp4
ffmpeg -i input.mkv -c:v copy -c:a libfaac -b:a 192k output.mp4

यदि आप DTS ट्रैक को भी बनाए रखना चाहते हैं, तो -mapध्वज का उपयोग करें ।

ओपी के लिए सीधे उपयोग का नहीं है, लेकिन ओएस एक्स प्रोग्राम सब्लर इस प्रक्रिया को बहुत आसान बनाता है।

संपादित करें: टिप्पणियाँ? ओपी ने निम्न कमांड के साथ समस्या हल की

ffmpeg -i input.mkv -strict experimental -map 0:0 -map 0:1 -map 0:2 -map 0:3 -c:v copy -c:a aac -b:a 384 -c:s copy output.mp4

सुझाव: -c:s copyउपशीर्षक के लिए काम नहीं करता है, तो कोशिश करें -c:s mov_text
मुझे कई मौकों पर बचाया।


मुझे नहीं लगता कि आंतरिक एएसी एनकोडर का वीबीआर मोड इरादा के अनुसार काम करता है। पिछली बार जब मैंने जाँच की तो वह टूट गया था। बेहतर सीबीआर के साथ जाने के लिए, और अन्य एनकोडर के लिए VBR का उपयोग करें ( libfdkऔर libfaac)
slhck

मैंने यह भी पढ़ा है कि libfdk_aac सबसे अच्छा परिणाम देगा। मैंने विंडोज के लिए 32-बिट स्थिर संस्करण (git-9722a6a (2014-05-24)) डाउनलोड किया है। अगर मेरे पास libfdk कोडेक है तो मैं कैसे जांच सकता हूं? संपादित करें: मुझे अज्ञात एनकोडर 'libfdk_aac' मिलता है। मैं इसे डाउनलोड कर सकते हैं, या वहाँ लगभग एक अच्छा ऑडियो कोडेक के रूप में है?
स्ट्राइक

दोनों की कोशिश की है ffmpeg -i input.mkv -c: v copy -c: a libfdk_aac -b: 128k output.mp4 और ffmpeg -i input.mkv -c: v कॉपी -c: a libfaac -b: 192k आउटपुट .mp4 नो गो :(
स्ट्राइक

@Striky "नहीं जाना :(" मैंने Homebrew से एक ताज़ा ffmpeg के साथ अंतिम कमांड की कोशिश की, मेरे लिए काम करता है। क्या आप इस बारे में अधिक जानकारी दे सकते हैं कि यह आपके लिए काम क्यों नहीं करता?
jornane

@ एसएलएचएचके: मैंने सिर्फ -c:a aac -q:a 6सेटिंग्स की कोशिश की और परिणाम की तुलना में -c:a libfaac -b:a 192k, मेरी राय में एएसी कोडेक लिबासैक की तुलना में बेहतर परिणाम देता है , लेकिन चूंकि कोडक विकास के अधीन हैं, इसलिए यह बदल सकता है। libfdk_aac शायद और भी बेहतर परिणाम देगा, लेकिन मेरे पास अभी उपलब्ध नहीं है।
jornane

0

मुझे पता है कि यह एक पुराना सवाल है - और पहले से ही एक उत्तर है - लेकिन मैं कुछ कमांड्स को साझा करना चाहता था जो मैं मैकफोर्स पर FFmpeg के साथ उपयोग कर रहा हूं।

एक MK2 से एएसी ऑडियो के साथ एक x264 वीडियो ने MP4 को एन्कोड किया

इसमें MP4 के साथ MKV का बेसिक रूपांतरण लेकिन ऑडियो को AAC को 128k में परिवर्तित करना। मैपिंग पर ध्यान दें: स्रोत इनपुट ( ) से -map 0:0पहला ( 0) ट्रैक 0और -map 0:1दूसरा ( 1) उसी स्रोत इनपुट से ट्रैक का मतलब है ( 0)। मुझे ऐसे मामलों में ऐसा करना पसंद है जहां कई ऑडियो ट्रैक हैं इसलिए मैं ऐसा कुछ कर सकता था जैसे -map 0:3कि तीसरा ट्रैक पाने के लिए।

ffmpeg -i input.mkv \
       -c:v copy \
       -c:a aac -b:a 128k \
       -map 0:0 -map 0:1 \
       output.mp4 \
       ;

एक HEVC / x265 वीडियो ने MKV से AAC ऑडियो के साथ MP4 को एन्कोड किया

यह उपरोक्त x264 कमांड के समान है, लेकिन इसके बजाय HEVC / x265 का उपयोग उसी के साथ एक छोटे फ़ाइल आकार को प्राप्त करने के लिए करता है - यदि बेहतर गुणवत्ता नहीं है - स्रोत MKV से वीडियो। ध्यान दें कि मैं HEVC / x265 का उपयोग करते समय iOS वीडियो को स्केल करना पसंद करता हूं; मेरे मैकबुक, iPad और iPhone पर बहुत अधिक शोर के बिना प्लेबैक के लिए गुणवत्ता ठोस है। बस सुनिश्चित करें कि आपका हार्डवेयर और OS HEVC / x265 प्लेबैक का समर्थन करता है। और forewarned हो: HEVC / x265 बहुत सीपीयू सघन है इसलिए यदि आपकी मशीन में बहुत अधिक सीपीयू पावर नहीं है तो इसे एक दिन में या 90 मिनट के वीडियो को एन्कोड करने में लंबा समय लग सकता है।

ffmpeg -i input.mkv \
       -vf scale=-1:720 \
       -c:v libx265 -crf 20 \
       -c:a aac -b:a 128k \
       -threads 4 \
       -tag:v hvc1 \
       -map 0:0 -map 0:1 \
       output.mp4 \
       ;

यहाँ इनपुट और आउटपुट फ़ाइलों के अलावा अन्य मुख्य मापदंडों में से एक का टूटना है।

  • -vf scale=-1:720: 720 ऊँचाई तक वीडियो स्केल करें और स्वचालित रूप से चौड़ाई की गणना करें। ध्यान दें कि FFmpeg गला घोंटना सकता है कुछ कारणों के लिए MKVs मैं 100% पर स्पष्ट नहीं कर रहा हूँ ताकि आप स्पष्ट रूप से कुछ इस तरह के साथ चौड़ाई सेट करने के लिए होगा: -vf scale=1280:720। प्रयोग करें और देखें कि आपके लिए क्या काम करता है।
  • -c:v libx265 -crf 20: libx265वीडियो एन्कोडिंग कोडेक है। -crf 20है सीआरएफ (स्थिर दर कारक) । डिफ़ॉल्ट CRF यदि आप इसे निर्दिष्ट नहीं करते हैं तो यह 28 है, लेकिन - अब तक - गुणवत्ता को बहुत अधिक खोजें ... मेह। मुझे 20 पसंद हैं क्योंकि यह गुणवत्ता और फ़ाइल आकार के बीच बहुत अच्छा संतुलन है।
  • -threads 4: मुझे थ्रेड काउंट निर्दिष्ट करना पसंद है। 4 वह है जो मेरा सिस्टम अब संभाल सकता है, लेकिन कभी-कभी मैं इसे 2 या 3 तक कम कर देता हूं। यदि आपके पास इसे संभालने के लिए पर्याप्त सीपीयू है तो उच्च संख्या तेज है।
  • -tag:v hvc1IOS डिवाइस के लिए ठीक से HEVC / x265 वीडियो चलाने के लिए लगाने के लिए मैजिक मेटाडेटा सेटिंग।

और उस बारे में है!

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