मैं एक बनाने के लिए दो mp4 फाइलों में शामिल होना चाहता हूं। वीडियो स्ट्रीम h264 और aac में ऑडियो एन्कोडेड हैं। मैं कम्प्यूटेशनल कारणों से वीडियो को दूसरे प्रारूप में फिर से एनकोड नहीं कर सकता। इसके अलावा, मैं किसी भी GUI प्रोग्राम का उपयोग नहीं कर सकता, सभी प्रोसेसिंग लिनक्स कमांड लाइन उपयोगिताओं के साथ किया जाना चाहिए। FFmpeg mpeg4 फ़ाइलों के लिए ऐसा नहीं कर सकता, इसलिए मैंने MP4Box का उपयोग किया:
MP4Box -add video1.mp4 -cat video2.mp4 newvideo.mp4
दुर्भाग्य से ऑडियो सब मिश्रित हो जाता है। मैंने सोचा था कि समस्या यह थी कि ऑडियो एएसी में था इसलिए मैंने इसे एमपी 3 में ट्रांसकोड किया और फिर से MP4Box का इस्तेमाल किया। इस मामले में ऑडियो पहले हाफ के लिए ठीक है newvideo.mp4
(संबंधित video1.mp4
) लेकिन फिर उनका कोई ऑडियो नहीं है और मैं वीडियो में भी नेविगेट नहीं कर सकता।
मेरा अगला विचार यह था कि ऑडियो और वीडियो स्ट्रीम में उनकी लंबाई में कुछ छोटी विसंगतियां थीं, जिन्हें मुझे ठीक करना चाहिए। इसलिए प्रत्येक इनपुट वीडियो के लिए मैंने वीडियो और ऑडियो स्ट्रीम को विभाजित किया और फिर उन्हें FFmpeg में -shortest विकल्प के साथ जोड़ा।
इस प्रकार मेरे द्वारा चलाए गए पहले वीडियो के लिए:
avconv -y -i video1.mp4 -c copy -map 0:0 videostream1.mp4
avconv -y -i video1.mp4 -c copy -map 0:1 audiostream1.m4a
avconv -y -i videostream1.mp4 -i audiostream1.m4a -c copy -shortest video1_aligned.mp4
इसी तरह दूसरे वीडियो के लिए और फिर पहले की तरह MP4Box का इस्तेमाल किया। दुर्भाग्य से यह भी काम नहीं किया। एकमात्र सफलता मुझे तब मिली जब मैं वीडियो स्ट्रीम में अलग से शामिल हो गया (यानी videostream1.mp4 और videostream2.mp4) और ऑडियो स्ट्रीम (यानी audiostream1.m4a और audiostream2.m4a) और फिर एक अंतिम फ़ाइल में वीडियो और ऑडियो से जुड़ गया। हालाँकि, वीडियो के दूसरे छमाही के लिए सिंक्रनाइज़ेशन खो जाता है। लगातार, ऑडियो और वीडियो की 1 सेकंड की देरी है। किसी भी सुझाव वास्तव में स्वागत है।