ffmpeg लाइव इनपुट MP4 त्रुटि


1

वर्तमान में मेरे पास एक माइक और मेरे कंप्यूटर से जुड़ा एक वेब कैमरा है। मैं CentOS 6.3 पर ffmpeg चला रहा हूं।

जब मैं ऑडियो के बिना वीडियो रिकॉर्ड करने का प्रयास करता हूं:

ffmpeg -y -f video4linux2 -t 15 -s 640x480 -r 25 -i /dev/video0 /home/irdb/Desktop/out2.mp4

यह पूरी तरह से चलता है और मुझे एक अच्छा वीडियो मिलता है। हालाँकि जब मैं इसमें शामिल ऑडियो के साथ चलने की कोशिश करता हूँ:

ffmpeg -y -f video4linux2 -t 15 -s 640x480 -r 25 -i /dev/video0 -f alsa -ar 22050 -ab 64k -ac 2 -i default /home/irdb/Desktop/out2.mp4

यह त्रुटि और प्रिंट करता है:

[NULL @ 0x1e33fc0] Codec is experimental but experimental codecs are not enabled,      see -strict -2
Output #0, mp4, to '/home/irdb/Desktop/out2.mp4':
Stream #0:0: Video: h264, yuv420p, 640x480, q=-1--1, 90k tbn, 25 tbc
Stream #0:1: Audio: none, 22050 Hz, 2 channels, flt, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> libx264)
Stream #1:0 -> #0:1 (pcm_s16le -> aac)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such    as bit_rate, rate, width or height

मुझे लगता है कि यह पहली त्रुटि के साथ करना है जब मैं mpg की तरह कुछ का उपयोग करता हूं तो यह ठीक काम करता है। हालाँकि, मैं इसे लाइव स्ट्रीमिंग की योजना बना रहा हूं और mp4 प्रारूप चाहता हूं क्योंकि यह सभी ब्राउज़रों द्वारा समर्थित है (फ़ायरफ़ॉक्स फ्लैश फ्लैश के साथ)।

क्या किसी को पता है कि अतिरिक्त प्रसंस्करण के बिना काम करने के लिए ऑडियो कैसे प्राप्त करें (जैसा कि मैं लाइव स्ट्रीम करना चाहता हूं और अंततः फ़ाइल में नहीं लिखना चाहता)।

जवाबों:


5

संक्षिप्त उत्तर: आउटपुट फ़ाइल नाम से पहले -strict experimental(या उपनाम -strict -2) जोड़ें ।

लंबे उत्तर: mp4 आमतौर पर H.264 वीडियो और AAC ऑडियो होते हैं। H.264 वीडियो के लिए आप GPL-लाइसेंस प्राप्त libx264(जो आप कर रहे हैं) का उपयोग करके इसे एनकोड करना चाहेंगे ।

ऐसे कई एएसी एनकोडर हैं जिनका उपयोग ffmpeg के साथ किया जा सकता है। एक देशी ffmpeg AAC एनकोडर है, लेकिन यह प्रायोगिक है और गुणवत्ता अन्य AAC एनकोडर जितनी अच्छी नहीं है। -strict experimentalविकल्प यह सक्षम करने के लिए इस्तेमाल किया जा सकता। फ्राउन्होफर एनकोडर libfdk_aacमें उच्चतम गुणवत्ता है; यह 2012 में एंड्रॉइड जेली बीन स्रोत कोड रिलीज के भाग के रूप में कस्टम कॉपलेफ्ट लाइसेंस के तहत जारी किया गया था। क्योंकि GPL केवल GPL-लाइसेंस कोड वाले बायनेरिज़ के पुनर्वितरण की अनुमति देता है यदि संपूर्ण कार्य GPL के अंतर्गत जारी किया जाता है, तो आपका ffmpeg संभवतः इस एनकोडर के साथ कॉन्फ़िगर नहीं किया जाता है जब तक कि आप इसे स्वयं संकलित नहीं करते हैं।

आप ffmpeg के AAC एन्कोडिंग गाइड में अधिक जानकारी पा सकते हैं ।


बहुत बहुत धन्यवाद! बढ़िया काम किया। ऑडियो में एक क्लिक करने वाला शोर है। यकीन नहीं अगर इसके कोडेक या नहीं, क्योंकि यह गुणवत्ता के स्तर के साथ नहीं बदलता है। फिर भी, मैं एक नए एसीसी codec एक कोशिश के साथ recompiling दे दूँगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.