ffplay - अलग-अलग वीडियो और ऑडियो फ़ाइलों को एक साथ कैसे चलाएं


9

इसलिए मैं अलग-अलग वीडियो और ऑडियो फ़ाइलों को एक मूवी फ़ाइल में ट्रांसकोड करने में सक्षम हूं, जैसे:

ffmpeg -ss 0 -lowres 0 -r 24 -i dcp/picture.mxf -vf "xyz2rgb" -i mov/sound.wav -ac 2 -ab 256k -vb 3000k -t 10 -y mov/movie.mp4

और इसके परिणामस्वरूप मूवी देखें और सुनें:

ffplay -ss 0 -lowres 1 -vf "xyz2rgb" mov/movie.mp4

हालाँकि, मूवी और साउंड को एक फाइल में ट्रांसकोड करने से बचने के लिए, इसे देखने से पहले, मैं केवल दो अलग-अलग फाइलों को एक साथ प्ले करना चाहूंगा। जहां तक ​​मुझे पता है, ffplay आपको दो अलग-अलग फ़ाइलों (दाएं?) को संयोजित करने की अनुमति नहीं देता है।

इन मंचों को पढ़कर ऐसा लगता है कि आप ffplay को ffmpeg आउटपुट दे सकते हैं । निम्नलिखित मेरे जितना ही निकट है। यह करीब नहीं है। :( वीडियो जानकारी स्पष्ट रूप से ले जाई जा रही है, लेकिन यह सही फ्रेम के आकार में हरे "बर्फ" है, भयानक हरे बर्फ के अंदर नाचते हुए वास्तविक कल्पना के संकेत के साथ। इस तरह से मुझे पता है कि वास्तविक चित्र डेटा में से कुछ ले जा रहा है। , बस सही ढंग से प्रतिपादन नहीं।

और कोई ऑडियो नहीं चलता है। आवाज नहीं हो रही है (मुझे नहीं लगता।) अब ... मैं फंस गया हूं। निम्नलिखित बताता है कि मैं क्या करने की कोशिश कर रहा हूं, लेकिन यह काम नहीं कर रहा है:

ffmpeg -ss 0 -lowres 0 -r 24 -i dcp/picture.mxf -vf "xyz2rgb" -i mov/sound.wav -f rawvideo - | ffplay -f rawvideo -vf "xyz2rgb" -s 1998x1080 -

जवाबों:


4

वीडियो जानकारी को स्पष्ट रूप से ले जाया जा रहा है, लेकिन यह सही फ्रेम के आकार में हरा "बर्फ" है, जिसमें भयानक हरे बर्फ के अंदर वास्तविक कल्पना नृत्य के संकेत हैं।

यह पिक्सेल प्रारूप होना चाहिए। आप xyz2rgbफ़िल्टर को लागू कर रहे हैं जो डीसीपी कलरस्पेस को आरजीबी में परिवर्तित करता है, और फिर आप कच्चे वीडियो को पाइप कर रहे हैं ffplay। यहां, आप xyz2rgbफ़िल्टर को फिर से लागू कर रहे हैं , जो संभवतः विकृतियों का कारण बनता है, क्योंकि FFmpeg का कोई पता नहीं है कि कच्चा वीडियो कैसे एन्कोड किया गया है। यह वीडियो के साथ जो भी आप चाहते हैं वह करेंगे, यहां तक ​​कि दो बार कलरस्पेस को परिवर्तित करना।


मेरे पास ffplayइसके बजाय मैट्रोस्का प्रारूप को पाइप करने के अच्छे परिणाम हैं rawvideo, जो आपको ऑडियो को डिकोड करने की क्षमता भी देता है (नीचे देखें)। Matroska प्रारूप में किसी भी प्रकार के कोडेक हो सकते हैं ।

ध्यान दें कि FFmpeg में विकल्पों का क्रम मायने रखता है, और आपको संभवतः अधिक हाल के संस्करण का उपयोग करना चाहिए क्योंकि यह आपके लिए अधिक सख्त है कि आप विकल्प कहां चुनते हैं:

  • वैश्विक विकल्प जैसे -yपहले आते हैं।
  • फिर, इनपुट फ़ाइलों को पढ़ने के लिए विकल्प निर्दिष्ट करें - फ़ाइल के -r 24लिए फ्रेम दर को मजबूर करता है picture.mxf
  • फिर सभी इनपुट फ़ाइलों को निर्दिष्ट करें।
  • फिर वीडियो फिल्टर, वीडियो बिटरेट आदि जैसे कोडेक विकल्प आते हैं।

आपकी स्थिति में, यह केवल ऑडियो स्ट्रीम को कॉपी करने के लिए समझ में आता है, क्योंकि हमें वास्तव में इसे ट्रांसकोड करने की आवश्यकता नहीं है। फ़िल्टर को लागू करने में सक्षम होने के लिए वीडियो को ट्रांसकोड करना होगा।

कुछ ऐसा करना चाहिए। ध्यान दें कि हमने आउटपुट फॉर्मेट को स्पष्ट रूप से कैसे सेट किया है matroskaऔर ffplayबाकी को खुद समझ लें :

ffmpeg -r 24 -i dcp/picture.mxf -i mov/sound.wav \
-filter:v "xyz2rgb" -b:v 3000k -c:a copy -t 10 -f matroska - | \
ffplay -

मैं (IMO कम अस्पष्ट) जैसे विकल्पों के लिए वाक्य रचना का उपयोग किया है -filter:vके बजाय -vf, -b:vके बजाय -vb, और -c:aके बजाय -acodec

यदि वह प्रारूप आपके लिए काम नहीं करता है, तो AVI का प्रयास करें:

ffmpeg -i picture.mxf -i sound.wav -f avi - | ffplay -

यह मेरे लिए समस्याओं के बिना काम करता है , और इससे मुझे आपके द्वारा आवश्यक फ़िल्टर का उपयोग करने की भी आवश्यकता नहीं थी। साथ ही ऑडियो काम कर रहा था।


इसके लिए धन्यवाद! ठीक है, मुझे यह मिला: <br/> <br/> '-filter: v' -filter: v: अमान्य तर्क के लिए उपयुक्त आउटपुट स्वरूप खोजने में असमर्थ <br> <br> ?? (वही -vf के लिए)। कोडेक और फ़िल्टर यहाँ से है: goo.gl/avE1f - लेखक ने इसे लिखा और ffmpeg (केवल एक संस्करण जो इस प्रक्रिया और उसकी फ़ाइलों के साथ काम करता है) की एक कस्टम स्थापना को डिज़ाइन किया है जिसमें मालिकाना कोडेक और रंग स्थान फ़िल्टर शामिल हैं, और इस प्रकार इसे डिकोड कर सकते हैं। कस्टम ffmeg इंस्टॉलेशन को मालिकाना JPEG2000 MJPEG इमेज अनुक्रम को पढ़ने में सक्षम होना चाहिए जो चित्र MFX के अंदर समाहित है। अगर वह नोट करने में मदद करता है :)
बिल रुडोल्फ याबेर रसेल

ओह, मैं एक डमी हूं, मैं कमांड लाइन पर "\" के ब्रेक को हटाना भूल गया। वैसे भी, अब जब मैं आपके सुझाव को दर्ज करता हूं, तो नंबर स्ट्रीमिंग दिखाते हैं, लेकिन कोई विंडो नहीं खुलती है, तो लगभग 20 सेकंड बाद यह इसके साथ बंद हो जाता है: <br /> <br /> विभाजन दोष: 1136.0 आकार = 138kB समय = 00: 00: 00.08 बिटरेट = 13445.2kbits / s
बिल रुडोल्फ याबेर रसेल

एक तस्वीर है मूल्य एक हजार शब्द - यहाँ, इस आसान स्क्रीन हड़पने वीडियो से पता चलता है क्या काम कर रहा है और क्या नहीं है: dl.dropbox.com/u/11290938/screen_grab_ffdcp_750.mov
विधेयक रूडोल्फ Yaber रसेल

वीडियो के लिए आपका बहुत-बहुत धन्यवाद। सबसे पहले, आपके पहले रॉविडियो कमांड में समस्या है कि आप गलत आकार निर्दिष्ट कर रहे हैं। आपके इनपुट में 500x270 हैं- या कम से कम पाइप में क्या है ffplay। इसके अलावा, आपके आउटपुट में rgb48leपिक्सेल प्रारूप (फ़िल्टर के कारण) के रूप में है, लेकिन ffplayमानता है yuv420p, इसलिए आपको यह भी निर्दिष्ट करना होगा ffplay -f rawvideo -s 500x270 -pix_fmt rgb48le -:। इस segfault के लिए: कोई विचार नहीं ... हो सकता है कि आप कहीं एक छोटी परीक्षण फ़ाइल बना और अपलोड कर सकें?
slhck

Ooo गुडी, परीक्षण फ़ाइलें! वास्तव में, धन्यवाद। 500x270 का कारण मैंने "लोरस 2" को निर्दिष्ट किया है जो इसे दो बार आकार में कटौती करता है (आपके लिए एक स्पष्ट स्क्रीन ग्रैब में फिट होने के लिए :) तो ऐसा लगता है कि मैं एक से चूक गया। पृष्ठभूमि के अनुसार, यह फ़ाइल एक होममेड डीसीपी (मूवी थियेटर के लिए "डिजिटल फिल्म प्रिंट" के बारे में सोचती है, यही वजह है कि मीडिया इतना खतरनाक है), 1998x1080 पर 2K (1.85 वर्ग पिक्सेल पहलू)। छवि क्रम को सही करते समय, और मैंने और पैकेज को कल जमा किया और उन्होंने इसे फिल्म थियेटर में एक डीएलपी पर खेला, जहाँ इसे दिखाया जाएगा (त्योहार की एक रात के लिए) - और यह सही था (पाव!)।
बिल रुडोल्फ याबेर रसेल

3

यह धाराओं को ट्रांसकोड नहीं करेगा:

ffmpeg -i video.mkv -i audio.mkv -c copy -map 0:0 -map 1:1 output.mkv

-map 1:1= दूसरी फ़ाइल, स्ट्रीम 1 (आमतौर पर ऑडियो)। -c copy= -c:v copy -c:a copy। डिफ़ॉल्ट रूप से muxed फ़ाइल लंबी फ़ाइल जितनी लंबी होती है, लेकिन -shortestयह उतनी ही लंबी होगी जितनी छोटी फ़ाइल।


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

3
ffmpeg -lowres 2 -ss 0 -r24 -i MOVIE.MOV -ss 0 -i AUDIO.WAV -vf xyz2rgb -ac: 2 -c:v mpeg2video -f avi - | ffplay -

मेरे उद्देश्यों के लिए, यह एक डीसीपी (डिजिटल सिनेमा पैकेज) की सामग्री की त्वरित समीक्षा की अनुमति देता है जिसे आप ओपन सोर्स टूल के साथ बना सकते हैं । DCP xyz रंग स्थान का उपयोग करता है, इसलिए आपको xyz वीडियो फ़िल्टर स्थापित करने की आवश्यकता है , अन्यथा आप इसे ऊपर की पंक्ति में उपयोग नहीं कर सकते। (यह ठीक है, यह सिर्फ भारी नारंगी रंग का दिखेगा, आपको असली रंग देखने को नहीं मिलेगा।)

मैंने mpeg2video कोडेक b / c जोड़ा है, हालांकि गुणवत्ता को कम करना, यह कम दर है और बफ़र्स थोड़ा है, इसलिए यह मेरी मशीन पर अधिक सुचारू रूप से कार्य करता है। (इसके अलावा, किसी कारण के लिए, पहले ट्रांसकोडिंग के बिना, मुझे केवल एक फ्रीज फ्रेम मिल जाता है, जो कि एमएक्सएफ से 125 एमबी / एस पर जेजेपी 2 एमपीईजी सीक्वेंस फीडिंग करता है, जब तक कि मैं शुरू नहीं करता हूं - "एसएस 0", यानी बहुत शुरुआत में। फ़ाइल।) एक बहुत तेज़ मशीन के साथ, कोई भी कोडेक निर्दिष्ट नहीं करता है ("-c: v mpeg2video"), पूर्ण आकार ("-lores 0"), और 0 (-ss 0) से शुरू करके, आप सैद्धांतिक रूप से 2K सिनेमा की समीक्षा कर सकते हैं। गुणवत्ता डीसीपी बिल्कुल वैसा ही है। वैसे, XML के किसी भी विशेष निर्देशों को छोड़कर - उपशीर्षक या अन्य प्रोग्रामिंग। लेकिन आम तौर पर। (BTW "-ac: 2" downmixes 5.1 से 2.0 - यद्यपि आपके पास हार्डवेयर हो सकता है जो ऑडिशनिंग 5.1 का समर्थन करता है, जिस स्थिति में "-c: a copy" का उपयोग करें।)

बेले- नुइट पर मैथियास के लिए धन्यवाद , और इसके लिए मुझे चलने के लिए ऊपर से slhck । धन्यवाद!!!! यह काफी उपयोगी है। और वास्तव में, मुझे रविवार शाम एयरो थिएटर में एक संभावित शर्मनाक फिल्म स्क्रीनिंग से बचाया। मेरी छवि अनुक्रम क्रम अनुक्रम से बाहर थी - इसे इसी के साथ मिला और तय किया गया!

वाह, यह सब सिर्फ एक कमांड लाइन के लिए, कौन जानता था;)

चेयरो - बी worldpoop.com


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