ffmpeg: स्ट्रीम 0 (वीडियो: h264) अनिर्दिष्ट आकार के लिए कोडेक पैरामीटर नहीं मिल सका


9

मैं एक वीडियो को .raw से .mp4 में बदलने की कोशिश करता हूं। इस कारण से मैंने x264 और ffmpeg दोनों को डाउनलोड, निर्माण और स्थापित किया। हालाँकि, कमांड:

ffmpeg -f h264 -i output.raw -vcodec copy output.mp4

त्रुटि के साथ विफल रहता है (नीचे चित्र में दिखाया गया है)। क्या इसको ठीक करने का कोई तरीका है?

यहां छवि विवरण दर्ज करें

कमांड मैं भी चलाते हैं:

1

root@beagleboard:/# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : MJPEG

2

root@beagleboard:/dev# v4l2-ctl --set-fmt-video=pixelformat=0

क्या आप इस का आउटपुट पोस्ट कर सकते हैं: ffmpeg -i output.rawमान लें कि आप कनवर्ट करने का प्रयास कर रहे हैं output.raw। इसके अलावा अगर आप कोशिश करते हैं ffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4कि कंसोल आउटपुट क्या है?
राजिब

आपके जवाब के लिए धन्यवाद। दोनों आउटपुट बिल्कुल समान हैं, जैसा कि ऊपर संपादित किया गया है। क्या आपको लगता है कि वीडियो कैप्चर करते समय एन्कोडिंग, या फ़ाइल में कोई समस्या है?
dempap

आपको कहां से मिला output.rawऔर आपने इसे कैसे बनाया?
22

क्रियान्वित करके ./capture -f -c 100 -o > output.rawकैप्चरसी से डाउनलोड किया गया: linuxtv.org/downloads/v4l-dvb-apis/capture-cample.html
dempap

जवाबों:


0

आपका इनपुट बस h264 स्ट्रीम नहीं है, फिर भी आप ffmpeg को एक बता रहे हैं।

आपको ffmpeg को यह बताने की जरूरत है कि वास्तव में यह क्या है: mjpeg या yuyv फॉर्मेट में एक v4l2 स्ट्रीम (आपके द्वारा कैद किए गए दो के द्वारा, आपके कैमरे को कैप्चर के समय किस प्रारूप में सेट किया गया था) के आधार पर v4l2-ctl --list-formats। यदि आप ffmpeg को h264 में ट्रांसकोड करना चाहते हैं, तो आपको यह भी बताने की जरूरत है।

यदि इनपुट कच्चा YUYV फ्रेम है, तो आप चाहते हैं:

ffmpeg -f rawvideo -pix_fmt yuyv422 -s:v 640x480 -r 25 -i output.raw -c:v libx264 output.mp4

640x480 और 25 को अपने वीडियो के आयाम और फ्रेमरेट से बदलें।

यदि इनपुट MJPEG है, तो आपको बस बाहर निकलने में सक्षम -fहोना चाहिए और ffmpeg को इसका पता लगाना चाहिए:

ffmpeg -i output.raw -c:v libx264 output.mp4

संयोग से, आपको दूसरे कैप्चर टूल की आवश्यकता नहीं है; ffmpeg v4l2 उपकरणों से ठीक कैप्चर कर सकता है:

ffmpeg -f v4l2 -r 25 -s:v 640x480 -i /dev/video0 -c:v libx264 output.mp4
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.