ঠিক আছে, যেহেতু আমি 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
পরামিতিটি পুরোপুরি ছেড়ে দেওয়া সহজ হবে iest
ভাল জিনিস হ'ল এই সম্পাদনা ক্রমটি সংরক্ষণ করা যেতে পারে - বা 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
ভিডিওগুলি যা একটি সাধারণ সিরিয়ালাইজেশন ফাইলের সাথে সেগফল্ট তৈরি করেছিল - এক্সএমএল সিরিয়ালাইজেশন ফাইলের সাথে ঠিক কাজ করে!
এই ক্ষেত্রে, ফলাফলযুক্ত file.mlt
এক্সএমএল ফাইলের অনেকগুলি সেটিংস রয়েছে যেমন রেজোলিউশন, ফ্রেম রেট, কোডেক তথ্য ইত্যাদি - তবে সরাসরি পাঠ্য সম্পাদকের সাথে কাজ করা আরও কঠিন:
<?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>