ठीक है, क्योंकि मैं melt
कमांड लाइन के उपयोग के बारे में बहुत कुछ नहीं पा सकता हूं , यहां कुछ नोट हैं .. (और इसके बाद, इस उत्तर को देखें। प्रक्रिया का उपयोग करके फ़ाइलों की अपेक्षा करने वाले ट्रिक प्रोग्रामों के लिए प्रतिस्थापन के रूप में, विशिष्ट एक्सटेंशन के तर्क के साथ? - यूनिक्स और लिनक्स स्टैक एक्सचेंज एक स्क्रिप्ट के लिए? उदाहरण के माध्यम से bash
)
के साथ शुरू करने के लिए - के लिए एक उबंटू / डेबियन पैकेज है melt
(मेरे पास उबटन 11.04 एमएलटी पिघल 0.6.2 के साथ है); @ आईल्टन द्वारा दिए गए लिंक "मीडिया लविन 'टूलकिट" ( एमएलटी ) विकी के लिए है, जो melt
(लेकिन यह भी openshot
और kdenlive
) का एक हिस्सा है । यहाँ उनके गिट से प्रलेखन पाठ फ़ाइलों के लिए लिंक है: mltframework.org/mlt.git/tree - डॉक्स / ; ध्यान दें कि बिल्ड में लिपियों के बारे में एक पृष्ठ है ।
अभी के लिए, सबसे बड़ी (केवल) समस्या जो मेरे पास है, वह यह है कि मुझे एक असम्पीडित वीडियो रचना (या तो png
फ्रेम, या कुछ असम्पीडित वीडियो प्रारूप) को निर्यात करने का कोई तरीका नहीं मिल रहा है ।
सबसे पहले, कमांड-लाइन में melt
आप फ़्रेम के माध्यम से प्लेबैक को नियंत्रित कर सकते हैं; उदाहरण के लिए, एक 15-फ्रेम लंबा सफेद रिक्त "बनाने" के लिए, और इसे अंतर्निहित melt
खिलाड़ी के साथ देखें, उपयोग करें
melt -blank 15
जब आप देखते हैं melt
, तो आपको stderr
अंतर्निहित खिलाड़ी के लिए कमांड लाइन की जानकारी भी मिलेगी :
$ melt -blank 15
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
|1=-10| |2= -5| |3= -2| |4= -1| |5= 0| |6= 1| |7= 2| |8= 5| |9= 10|
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
+---------------------------------------------------------------------+
| H = back 1 minute, L = forward 1 minute |
| h = previous frame, l = next frame |
| g = start of clip, j = next clip, k = previous clip |
| 0 = restart, q = quit, space = play |
+---------------------------------------------------------------------+
Current Position: 15
एक बार melt
वापस खेलने के बाद, यह बाहर नहीं निकलेगा - इसलिए आपको q
इसे बाहर निकलने के लिए लिखना चाहिए ।
हमें ध्यान देना चाहिए कि तथाकथित "निर्माता" और "उपभोक्ता" अंदर हैं melt
। यदि कुछ भी निर्दिष्ट नहीं है, तो डिफ़ॉल्ट "उपभोक्ता" एक एसडीएल (सरल डायरेक्टमीडिया लेयर) है जो वीडियो को वापस खेल रहा है; इसलिए उपरोक्त आदेश समान है:
melt -blank 15 -consumer sdl
इस प्रकार, यदि हम जो melt
प्रदर्शित करना चाहते हैं उसे सहेजना चाहते हैं, तो हमें उपभोक्ता को ऐसी चीज़ में बदलना चाहिए जो फ़ाइल प्रारूप का समर्थन करेगी। उपभोक्ताओं की सूची प्राप्त करने के लिए:
$ melt -query "consumers"
---
consumers:
- sdl
- sdl_audio
- sdl_preview
- sdl_still
- gtk2_preview
- avformat
- libdv
- xml
- decklink
- null
...
libdv
उपभोक्ता इच्छा उत्पादन डीवी सीधे करने के लिए स्वरूपित डेटा stdout
, तो एक करने के लिए वीडियो को बचाने के लिए .dv
फ़ाइल तुम क्या चाहते हैं:
melt -blank 15 -consumer libdv > test.dv
ध्यान दें कि सूचीबद्ध उपभोक्ताओं से, मैंने केवल एक ही प्रारूप की कोशिश की है, जिसे किसी अन्य एप्लिकेशन में भी खोला जा सकता है libdv
(मैं vlc
दूसरे एप्लिकेशन के रूप में उपयोग किया जाता है); हालाँकि, यह एक भिन्न प्रकार के ट्रांसकोडिंग के लिए विफल हो सकता है ( जैसे कि यदि रिक्त के बजाय, मैं किसी .flv
फ़ाइल से स्निपेट को बदलने की कोशिश करता हूं , तो .dv फ़ाइल खुलती है और इसमें खेलती है vlc
, लेकिन भ्रष्ट है )।
अब संपादन भाग के लिए; अनिवार्य रूप से, आप सीधे कमांड लाइन पर फ़ाइल-नाम / इन / आउट आढ़तियों की एक श्रृंखला निर्दिष्ट कर सकते हैं ; कहते हैं कि आपके पास एक फ़ाइल है, video.avi
- तब आप कर सकते हैं:
melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79
या थोड़ा बेहतर स्वरूपित:
melt \
video.avi in=30 out=79 \
-blank 15 \
video.avi in=30 out=79
इसका मतलब video.avi
इसके फ्रेम 30 से इसके फ्रेम 79 तक खेला जाएगा; फिर एक 15-फ्रेम खाली; और फिर video.avi
फ्रेम 30 से फ्रेम फिर से 79 तक अनुक्रम।
.png
एक वीडियो संपादित रचना में छवियों (कहना ) का उपयोग करने के लिए :
melt \
video.avi in=30 out=79 \
test.png in=0 out=15 \
video.avi in=30 out=79 \
-blank 15
के लिए ध्यान दें कि test.png
, in=
पैरामीटर 0 होने की जरूरत नहीं है - फिर भी, छवि के लिए प्रदर्शित किया जाएगा out
- in
समय; इस मामले में, in=0
पैरामीटर को पूरी तरह से छोड़ना आसान होगा ।
अच्छी बात यह है कि इस संपादन अनुक्रम को बचाया जा सकता है - या जैसा कि melt
इसे कॉल किया जाता है, क्रमबद्ध - एक फ़ाइल के लिए; ध्यान दें कि इस तरह के क्रमांकन के दो तरीके हैं : "सरल" या एक्सएमएल। उदाहरण के लिए, उपरोक्त कमांड को "सरल" क्रमबद्ध फ़ाइल के रूप में सहेजने के लिए, हम केवल -serialise [filename]
कमांड में स्विच जोड़ सकते हैं :
$ melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79 -serialise file.melt
Project saved as file.melt.
अब file.melt
इसमें शामिल हैं:
video.avi
in=30
out=79
-blank
15
video.avi
in=30
out=79
लगता है, इस "सरल" धारावाहिक फ़ाइल प्रारूप में "टिप्पणी" वर्ण शामिल नहीं है - अगर मैं एक " # comment
" लाइन जोड़ने की कोशिश करता हूं , तो melt
इसके साथ शिकायत करता है: '' टिप्पणी को लोड करने में विफल " " (लेकिन इसके अलावा, ऐसा लगता है कि ऐसा है) एक लाइन को अनदेखा किया जाता है, और प्लेबैक वैसे भी जारी रहता है)। " .melt
" एक ऐसा विस्तार प्रतीत होता है जो melt
सरल क्रमबद्ध फ़ाइल के रूप में पहचानता है।
अब, इस क्रमबद्ध फ़ाइल को फिर से चलाने के लिए, हम सिद्धांत रूप में कॉल कर सकते हैं melt file.melt
- हालाँकि, एक अधिक पूर्ण कमांड लाइन होगी:
melt melt_file:file.melt -consumer sdl
... जिसका अर्थ होगा: melt_file
"निर्माता" को खोलने के लिए उपयोग करें file.melt
, और "उपभोक्ता" sdl
(विंडो) पर इसके फ्रेम को प्रस्तुत करना ।
ध्यान दें कि मुझे अनुभव है, कि (कहते हैं) .flv
वीडियो कमांड लाइन पर एक समस्या के बिना खेलते हैं - हालांकि, file.melt
क्रमबद्ध फ़ाइल में निर्दिष्ट होने पर एक विभाजन दोष का कारण बनता है ! खुद .dv
द्वारा निर्मित वीडियो melt
, ठीक काम करने लगते हैं file.melt
...
एक्सएमएल प्रकार के क्रमांकन को -consumer xml:
स्विच ( ) के बजाय का-serialise
उपयोग करके प्राप्त किया जा सकता है - इसलिए उपरोक्त उदाहरण अब होगा:
melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79 -consumer xml:file.mlt
नई जेनरेट की गई file.mlt
एक्सएमएल फाइल को "प्ले बैक" करने के लिए , एक अब सीधे कर सकता है melt file.mlt
- या, एक पूरी कमांड लाइन होगी:
melt xml:file.mlt -consumer sdl
... जिसका अर्थ होगा: xml
"निर्माता" ( ध्यान दें, पहले यह एक उपभोक्ता था ) का उपयोग करें file.mlt
, और "उपभोक्ता" sdl
(खिड़की) पर इसके फ्रेम को प्रस्तुत करना ।
ध्यान दें कि इस मामले में, मैंने अनुभव किया है कि बहुत ही .flv
वीडियो जो एक साधारण क्रमांकन फ़ाइल के साथ सेगफॉल्ट का कारण बनता है - एक XML क्रमांकन फ़ाइल के साथ ठीक काम करता है!
इस मामले में, परिणामस्वरूप file.mlt
XML फ़ाइल में बहुत अधिक सेटिंग्स हैं, जैसे कि रिज़ॉल्यूशन, फ़्रेम दर, कोडेक जानकारी आदि - लेकिन यह सीधे टेक्स्ट एडिटर के साथ काम करना भी अधिक कठिन है:
<?xml version="1.0" encoding="utf-8"?>
<mlt root="/path/to" title="video.avi">
<profile description="automatic" width="320" height="240" progressive="1" sample_aspect_num="1" sample_aspect_den="1" display_aspect_num="320" display_aspect_den="240" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
<producer id="producer0" in="30" out="79">
<property name="mlt_type">producer</property>
<property name="aspect_ratio">1.000000</property>
<property name="length">125</property>
<property name="eof">pause</property>
<property name="resource">video.avi</property>
<property name="meta.media.nb_streams">2</property>
<property name="meta.media.0.stream.type">video</property>
<property name="meta.media.0.stream.frame_rate">25.000000</property>
<property name="meta.media.0.stream.sample_aspect_ratio">0.000000</property>
<property name="meta.media.0.codec.frame_rate">25.000000</property>
<property name="meta.media.0.codec.pix_fmt">yuv420p</property>
<property name="meta.media.0.codec.sample_aspect_ratio">1.000000</property>
<property name="meta.media.0.codec.colorspace">601</property>
<property name="meta.media.0.codec.name">mpeg4</property>
<property name="meta.media.0.codec.long_name">MPEG-4 part 2</property>
<property name="meta.media.0.codec.bit_rate">0</property>
<property name="meta.media.1.stream.type">audio</property>
<property name="meta.media.1.codec.sample_fmt">s16</property>
<property name="meta.media.1.codec.sample_rate">22050</property>
<property name="meta.media.1.codec.channels">1</property>
<property name="meta.media.1.codec.name">mp2</property>
<property name="meta.media.1.codec.long_name">MP2 (MPEG audio layer 2)</property>
<property name="meta.media.1.codec.bit_rate">64000</property>
<property name="seekable">1</property>
<property name="meta.media.sample_aspect_num">1</property>
<property name="meta.media.sample_aspect_den">1</property>
<property name="meta.attr.title.markup"></property>
<property name="meta.attr.author.markup"></property>
<property name="meta.attr.copyright.markup"></property>
<property name="meta.attr.comment.markup"></property>
<property name="meta.attr.album.markup"></property>
<property name="audio_index">1</property>
<property name="video_index">0</property>
<property name="mlt_service">avformat</property>
</producer>
<producer id="producer1" in="30" out="79">
<property name="mlt_type">producer</property>
<property name="aspect_ratio">1.000000</property>
<property name="length">125</property>
<property name="eof">pause</property>
<property name="resource">video.avi</property>
<property name="meta.media.nb_streams">2</property>
<property name="meta.media.0.stream.type">video</property>
<property name="meta.media.0.stream.frame_rate">25.000000</property>
<property name="meta.media.0.stream.sample_aspect_ratio">0.000000</property>
<property name="meta.media.0.codec.frame_rate">25.000000</property>
<property name="meta.media.0.codec.pix_fmt">yuv420p</property>
<property name="meta.media.0.codec.sample_aspect_ratio">1.000000</property>
<property name="meta.media.0.codec.colorspace">601</property>
<property name="meta.media.0.codec.name">mpeg4</property>
<property name="meta.media.0.codec.long_name">MPEG-4 part 2</property>
<property name="meta.media.0.codec.bit_rate">0</property>
<property name="meta.media.1.stream.type">audio</property>
<property name="meta.media.1.codec.sample_fmt">s16</property>
<property name="meta.media.1.codec.sample_rate">22050</property>
<property name="meta.media.1.codec.channels">1</property>
<property name="meta.media.1.codec.name">mp2</property>
<property name="meta.media.1.codec.long_name">MP2 (MPEG audio layer 2)</property>
<property name="meta.media.1.codec.bit_rate">64000</property>
<property name="seekable">1</property>
<property name="meta.media.sample_aspect_num">1</property>
<property name="meta.media.sample_aspect_den">1</property>
<property name="meta.attr.title.markup"></property>
<property name="meta.attr.author.markup"></property>
<property name="meta.attr.copyright.markup"></property>
<property name="meta.attr.comment.markup"></property>
<property name="meta.attr.album.markup"></property>
<property name="audio_index">1</property>
<property name="video_index">0</property>
<property name="mlt_service">avformat</property>
</producer>
<playlist id="playlist0">
<entry producer="producer0" in="0" out="49"/>
<blank length="16"/>
<entry producer="producer1" in="0" out="49"/>
</playlist>
<tractor id="tractor0" title="video.avi" global_feed="1" in="0" out="115">
<track producer="playlist0"/>
</tractor>
</mlt>