एमपीएक्स को MP4 में रिमूक्स / एनकोड / कन्वर्ट करें


4

मैं समझता हूं कि एमपीजी फ़ाइलों (अर्थात निर्मित) के मेटाडेटा को संपादित करना असंभव है, इसलिए मैं अपने एमपीजी को एक नए फ़ाइल प्रारूप में "अपग्रेड" करने का एक और तरीका ढूंढ रहा हूं (पसंदीदा प्रारूप हैं जो विंडोज और आईओएस दोनों पर काम करते हैं)।

इस लक्ष्य को प्राप्त करने के लिए मुझे क्या करना चाहिए? मेरे MPG वीडियो को MP4 या MOV में रिमूक्स / एनकोड / कन्वर्ट करें और फ़ाइलों को रिमूक्स / एन्कोडिंग / कन्वर्ट करने में कौन सी सेटिंग्स का उपयोग करना चाहिए? कौन सी क्रिया सबसे अच्छा परिणाम उत्पन्न करेगी; मूल MPG वीडियो के जितना संभव हो उतना करीब?

यहाँ मेरी MPG फ़ाइलों में से एक का औसत दर्जे का विनिर्देश है:

General
Complete name : E:\Users\Owner\Desktop\test\MOV03521.MPG
Format : MPEG-PS
File size : 25.1 MiB
Duration : 20s 124ms
Overall bit rate mode : Variable
Overall bit rate : 10.5 Mbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 1
Format settings, BVOP : No
Format settings, Matrix : Default
Format settings, GOP : N=1
Duration : 20s 100ms
Bit rate mode : Variable
Bit rate : 10.2 Mbps
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate : 30.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 1.105
Time code of first frame : 00:00:00:00
Time code source : Group of pictures header
GOP, Open/Closed : Closed
Stream size : 24.4 MiB (97%)

Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Duration : 20s 124ms
Bit rate mode : Constant
Bit rate : 64.0 Kbps
Channel(s) : 1 channel
Sampling rate : 32.0 KHz
Compression mode : Lossy
Stream size : 157 KiB (1%) 

1
MPEG-1 वीडियो? बल्कि पुराना लगता है। लेकिन क्या कारण है कि आप उन्हें परिवर्तित करना चाहते हैं? मेटाडेटा का संपादन MPEG-PS कंटेनरों के साथ भी संभव होना चाहिए। MP4 / MOV में कनवर्ट करने से गुणवत्ता कम हो जाएगी या कम से कम थोड़ी जगह ले ली जाएगी (यही है यहां का व्यापार)। या क्या आप iOS के साथ संगतता चाहते हैं (जो मुझे लगता है कि MPEG-1 नहीं संभालता है)?
15

मैं बस इतना चाहता हूं कि मेरी फाइलों के अंदर एक "बनाया" टैग जोड़ा जाए, नहीं तो वे ड्रॉपबॉक्स टाइमलाइन द्वारा मेरे कैरोसेल में सही से दिखाई नहीं देते। मैंने अपनी MPG मूवी को EXIFTOOL के साथ संपादित करने की कोशिश की और यह काम नहीं किया। यह कई अलग-अलग प्रारूपों के साथ काम करता है, लेकिन एमपीजी के साथ नहीं। मैं अपनी फ़ाइलों को परिवर्तित नहीं करना चाहता, मैं बस अपने एमपीजी फ़ाइलों (जो वास्तव में कैमरा वीडियो हैं) के साथ जुड़ा हुआ समय टैग चाहता हूं। रूपांतरण से मेरे iOS उपकरणों पर गुणवत्ता का नुकसान हुआ है। मुझे नहीं पता कि मुझे क्या करना है और इसलिए मैं विशेषज्ञों से सलाह ले रहा हूं।
जर्को

आह, कृपया "संपादन मेटाडेटा संभव होना चाहिए" को अनदेखा करें। यह हमेशा सच नहीं है। मेरा जवाब नीचे देखें। मुझे बताएं कि क्या आपको कमांड लाइन से चलने के लिए ffmpeg की मदद लेने की जरूरत है, या आपके लिए काम करने के लिए कुछ अन्य वीडियो रूपांतरण उपकरण प्राप्त करना है।
19

जवाबों:


3

निर्माण तिथि (कई अन्य मेटाडेटा फ़ील्ड की तरह) एक ऐसी संपत्ति है जिसे आप MP4 / MOV और MKV कंटेनर (साथ ही कई अन्य) के लिए सेट कर सकते हैं, लेकिन एमपीईजी प्रोग्राम स्ट्रीम या ट्रांसपोर्ट स्ट्रीम के लिए नहीं। वास्तव में, वीडियो मेटाडेटा के लिए कोई मानक नहीं है जैसे कि फ़ोटो के लिए EXIF ​​है। और जब उन्होंने एमपीईजी कंटेनरों को डिज़ाइन किया, तो उन्होंने शायद इस एप्लिकेशन (अभी तक) के बारे में नहीं सोचा था।

आपको इस तथ्य के बारे में पता होना चाहिए कि MPEG-1 बहुत पुराना है - उन्होंने इसे तब विकसित करना शुरू किया जब मैं पैदा हुआ था- और आप शायद वीडियो को और अधिक हाल ही में और संपीड़न-कुशल कोडेक जैसे H.264 में वीडियो परिवर्तित करना बेहतर होगा। आपका 10 MBit / s MPEG-1 वीडियो संभवतः 1 MBit / s H.264 पर उतना ही अच्छा लगेगा, या उससे कम भी होगा।

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

री-मक्सिंग वीडियो / ऑडियो बिटस्ट्रीम को नहीं छूएगा, इस प्रकार फ़ाइल का आकार और गुणवत्ता बरकरार रहेगी। Ffmpeg के साथ , आप निम्नलिखित प्रयास कर सकते हैं:

ffmpeg -i input.mpeg -c copy output.mkv

यह काम कर सकता है या नहीं। यह तब नहीं हुआ जब मैंने कोशिश की थी, लेकिन सिद्धांत रूप में Matroska MPEG-1 वीडियो का समर्थन करता है । Matroska हालांकि मूल रूप से Windows या iOS पर समर्थित नहीं है।

इसलिए, आप MP4 कंटेनर में H.264 / AAC के लिए वीडियो और ऑडियो को फिर से एनकोड कर सकते हैं:

ffmpeg -i input.mpeg -c:v libx264 -preset slow -crf 18 -c:a aac -strict experimental -b:a 128k output.mp4

यहां, सीआरएफ विकल्प गुणवत्ता निर्धारित करता है। 18 का मतलब बहुत अच्छा है। 23 डिफ़ॉल्ट है। कम का मतलब बेहतर है, इसलिए यदि आप गुणवत्ता को बनाए रखना चाहते हैं, तो आप 18 से भी नीचे जाना चाह सकते हैं।, 6 के सीआरएफ का परिणाम लगभग आधा / दोगुना है। 264 एन्कोडिंग गाइड बहुत उपयोगी है। ध्यान दें कि आपकी परिणामी फ़ाइल इनपुट फ़ाइल से छोटी हो सकती है लेकिन फिर भी उतनी ही अच्छी लगेगी। ऐसा इसलिए है क्योंकि कोडेक बहुत अधिक कुशल है। मेरा सुझाव है कि आप CRF को तब तक बदलते रहें जब तक कि आपको वह मूल्य न मिल जाए जहाँ आप मूल और फिर से एनकोड किए गए के बीच अंतर नहीं देख सकते।

MP4 में H.264 / AAC को (नए) विंडोज और आईओएस पर समर्थित है। पुराने विंडोज संस्करण (जिसमें विंडोज 7 आईआईआरसी शामिल है) इसे तब तक नहीं खेलेंगे जब तक कि एक कोडेक पैक स्थापित न हो। पुराने उपकरणों पर iOS संगतता के लिए, आपको एक विकल्प के रूप में सेट करना पड़ सकता है -profile:v baseline

MKV या MP4 में कनवर्ट करने के बाद, रचना तिथि जैसे मेटाडेटा सेट करना संभव होगा।


धन्यवाद slhck! अच्छी तरह से समझाया और पालन करने में आसान। अगर मेरे पास तीन MPG हैं जिन्हें मैं अलग से फिर से एनकोड करना चाहूंगा, तो क्या मुझे उन्हें एक-एक करके फिर से एनकोड करना होगा या कोई और बेहतर तरीका है? मेरी फाइलें हैं: MOV03521.mpg, MOV03552.mpg, MOV03553.mpg और मैं उन्हें Mp4 एक्सटेंशन वाली समान-नाम वाली फाइलों को फिर से एनकोड करना चाहूंगा। क्या आप जानते हैं कि यह किया जा सकता है और क्या कमांड / प्रोग्राम द्वारा?
जर्को

आपके ऑपरेटिंग सिस्टम पर निर्भर करता है! मैं कमांड लाइन लिपियों का प्रशंसक हूं, इसलिए या तो विंडोज बैच फाइलें या लिनक्स स्क्रिप्ट। कुछ कोड उदाहरणों के लिए यहां देखें: superuser.com/a/440639/48078
slhck

धन्यवाद - मैं इसे आजमा रहा हूं :-) मैं Win8 पर हूं। Startconvert.bat में यह शामिल होगा: %% i IN (* .mpg) DO (Convert-to-mp4.bat "%% i") के लिए, Convert-to-mp4.bat को इसमें शामिल करें: IF EXIST "% 1। mp4 "GOTO एक्जिट इको रूपांतरण% 1 के लिए% DATE%% पर शुरू हुआ TIME% ffmpeg -i% 1 -c: v libx264 -preset slow -crf 18 -c: anac -strid प्रयोगात्मक -b: 128k% 1.mp4 : बाहर निकलें प्रतिध्वनि% 1.mp4 पहले से ही मौजूद है
zarko

(उपरोक्त टिप्पणी में प्रतिध्वनि के सामने @ का अभाव है) - यहाँ पढ़ना आसान है: pastebin.com/zy4FcbM2
zarko

क्या आप यह देख सकते हैं कि क्या मैंने कन्वर्ट-टू-mp4.bat (ffmpeg -i% 1 -c: v libx264 -preset slow -crf 18 -c: aac -strict प्रयोगात्मक -b: 128k% में अपनी कमांड सही ढंग से लागू की है? 1.mp4)
जर्को

0

मैंने इसके लिए सफलतापूर्वक प्रयोग किया exiftool। सुधार से पहले यहाँ MPG फ़ाइल का मेटाडेटा है :

C:\>exiftool.exe -s test.mp4

ExifToolVersion                 : 10.01
FileName                        : test.mp4
Directory                       : .
FileSize                        : 14 MB
FileModifyDate                  : 2015:09:04 22:33:16+05:00
FileAccessDate                  : 2015:09:05 14:10:08+05:00
FileCreateDate                  : 2015:09:05 14:10:08+05:00
FilePermissions                 : rw-rw-rw-
FileType                        : MP4
FileTypeExtension               : mp4
MIMEType                        : video/mp4
MajorBrand                      : MP4  Base Media v1 [IS0 14496-12:2003]
MinorVersion                    : 0.2.0
CompatibleBrands                : isom, iso2, avc1, mp41
MovieHeaderVersion              : 0
CreateDate                      : 0000:00:00 00:00:00
ModifyDate                      : 0000:00:00 00:00:00
TimeScale                       : 1000
Duration                        : 0:01:22
-- snip --
TrackHeaderVersion              : 0
TrackCreateDate                 : 0000:00:00 00:00:00
TrackModifyDate                 : 0000:00:00 00:00:00
-- snip --
MediaHeaderVersion              : 0
MediaCreateDate                 : 0000:00:00 00:00:00
MediaModifyDate                 : 0000:00:00 00:00:00
-- snip --

मैंने सभी तिथियों को बदलने के लिए इसका उपयोग किया :

C:\>exiftool.exe ^
-Quicktime:CreateDate="2007-01-02 03:04:05" ^
-Quicktime:ModifyDate="2007-01-02 03:04:05" ^
     -TrackCreateDate="2007-01-02 03:04:05" ^
     -TrackModifyDate="2007-01-02 03:04:05" ^
     -MediaCreateDate="2007-01-02 03:04:05" ^
     -MediaModifyDate="2007-01-02 03:04:05" ^
test.mp4

सुधार के बाद यहाँ मेटाडेटा है :

FileModifyDate                  : 2015:09:05 14:20:54+05:00
FileAccessDate                  : 2015:09:05 14:20:54+05:00
FileCreateDate                  : 2015:09:05 14:10:08+05:00
-- snip --
CreateDate                      : 2007:01:02 03:04:05
ModifyDate                      : 2007:01:02 03:04:05
-- snip --
TrackCreateDate                 : 2007:01:02 03:04:05
TrackModifyDate                 : 2007:01:02 03:04:05
-- snip --
MediaCreateDate                 : 2007:01:02 03:04:05
MediaModifyDate                 : 2007:01:02 03:04:05
-- snip --

मेरा सुझाव है कि आप पहले अच्छे, ज्ञात MPG फाइलों के मेटाडेटा को देखें और नोट करें कि कौन सी तारीख है। प्रयोग करने से पहले अपनी फ़ाइलों का बैकअप लें (exiftool डिफ़ॉल्ट रूप से बैकअप बनाता है)। मेरे परीक्षण में, मूल और अद्यतन फ़ाइलों का आकार बिल्कुल समान है।

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