Tamam, melt
komut satırı kullanımı hakkında fazla bir şey bulamadığım için , burada bazı notlar var .. (ve bundan sonra, bu cevaba bakın . Argüman olarak belirli uzantıları olan, dosyaları bekleyen programları kandırmak için işlem değişikliğinin kullanılması? - Bir komut dosyası için Unix ve Linux Stack Exchange örnek yoluyla bash
)
Başlamak için - melt
(UbT erime 0.6.2 ile Ubuntu 11.04'üm var) için bir Ubuntu / Debian paketi var; @Ielton tarafından verilen bağlantı melt
, bir parçası olan (ayrıca openshot
ve aynı zamanda kdenlive
) "Media Lovin 'Araç Takımı " (MLT) Wiki içindir . İşte onların dokümantasyon metin dosyalarına gitmeden gelen link: mltframework.org/mlt.git/tree - docs / ; wiki'nin BuildScripts hakkında bir sayfası olduğunu unutmayın .
Şimdilik, onunla yaşadığım en büyük (sadece) sorun, sıkıştırılmamış bir video kompozisyonunu dışa aktarmanın bir yolunu bulamamamdır ( png
çerçeveler veya sıkıştırılmamış bir video formatı).
Öncelikle, komut satırında melt
oynatmayı karelerle kontrol edebilirsiniz; örneğin, 15 kare uzunluğunda beyaz bir boş "oluşturmak" ve yerleşik melt
oynatıcı ile görüntülemek için
melt -blank 15
İle görüntülediğinizde , yerleşik oynatıcı için melt
bir komut satırı bilgisi de alırsınız 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
Bir kez melt
yazdığınız bu yüzden - bu çıkmayacaktır, yapmaktan oynama geri döndü q
onu çıkmak için.
İçinde "üreticiler" ve "tüketiciler" olduğunu unutmayın melt
. Hiçbir şey belirtilmezse, varsayılan "tüketici", videoyu oynattan bir SDL (Simple DirectMedia Layer) penceresidir; bu yüzden yukarıdaki komut aynıdır:
melt -blank 15 -consumer sdl
Bu nedenle, melt
görüntülenenleri kaydetmek istiyorsak , tüketiciyi bir dosya formatını destekleyecek bir şeye değiştirmeliyiz. Tüketici listesi almak için:
$ melt -query "consumers"
---
consumers:
- sdl
- sdl_audio
- sdl_preview
- sdl_still
- gtk2_preview
- avformat
- libdv
- xml
- decklink
- null
...
libdv
Tüketici irade çıktı DV doğrudan biçimindeki verileri stdout
böylece video kaydetmek için, .dv
yapacağın dosyası:
melt -blank 15 -consumer libdv > test.dv
Listelenen tüketicilerden denediğim, başka bir uygulamada da açılabilen tek formatın libdv
( vlc
başka bir uygulama olarak kullandım ); bununla birlikte, bu farklı bir kodlama türü için başarısız olabilir ( örneğin, boşluk yerine, bir snippet'i .flv
dosyadan dönüştürmeye çalışırsam , sonuçta .dv dosyası açılır ve oynatılır vlc
, ancak bozulur ).
Şimdi düzenleme bölümü için; temelde, doğrudan komut satırından bir dizi dosya adı / giriş / çıkış stanzı belirleyebilirsiniz; bir dosyanız olduğunu söyleyin, video.avi
sonra şunları yapabilirsiniz:
melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79
veya biraz daha iyi biçimlendirilmiş:
melt \
video.avi in=30 out=79 \
-blank 15 \
video.avi in=30 out=79
Bu video.avi
, çerçevesinden 30, çerçevesine 79 kadar oynanacağı anlamına gelir ; sonra 15 karelik bir boşluk; ve daha sonra, video.avi
çerçeve 30'dan çerçeve 79'a yeniden dizilim.
.png
Bir video düzenleme kompozisyonundaki görüntüleri (örneğin ) kullanmak için :
melt \
video.avi in=30 out=79 \
test.png in=0 out=15 \
video.avi in=30 out=79 \
-blank 15
İçin Not olduğunu test.png
, in=
parametre 0 olması gerekmez - Ancak görüntü için görüntülenecek out
- in
zaman; Bu durumda, in=0
parametreyi tamamen dışarıda bırakmak en kolayı olacaktır .
İşin iyi yanı, bu düzenleme sırasının bir dosyaya seri hale getirilerek ( ya da melt
çağrıştırıldığı gibi) kaydedilebilmesidir ; bu tür serileştirmenin iki yolu olduğuna dikkat edin : "basit" veya XML. Mesela, yukarıdaki komutu "basit" bir seri hale getirilmiş dosya olarak kaydetmek için, anahtarı komuta ekleyebiliriz :-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.
Şimdi file.melt
içerir:
video.avi
in=30
out=79
-blank
15
video.avi
in=30
out=79
Görünüşe göre, bu "basit" serileştirilmiş dosya biçimi "yorum yapma" karakteri içermiyor - bir " # comment
" satır eklemeye çalışırsam , şu şekilde melt
şikayet ediyor: ' "# comment" yüklenemedi (ancak bunun dışında, bir çizgi yoksayılır ve oynatma yine de devam eder). " .melt
" melt
, basit seri hale getirilmiş dosya olarak bilinen bir uzantı gibi görünüyor .
Şimdi, bu serileştirilmiş dosyayı tekrar oynatmak için, prensip olarak sadece çağrı yapabiliriz melt file.melt
- ancak daha eksiksiz bir komut satırı şöyle olacaktır:
melt melt_file:file.melt -consumer sdl
... ki bu şu anlama gelir: melt_file
"yapımcı" yı açmak file.melt
ve çerçevelerini "tüketici" sdl
(pencere) üzerinde göstermek.
Tecrübe edindiğimi, .flv
videoların komut satırında sorunsuzca oynadığını - ancak file.melt
serileştirilmiş dosyada belirtildiğinde segmentasyon hatasına neden olduğunu unutmayın ! kendisi .dv
tarafından üretilen videolar melt
iyi çalışıyor gibi görünüyor file.melt
...
XML (seri yerine ) seri hale getirme -consumer xml:
( yerine-serialise
) kullanılarak elde edilebilir - böylece yukarıdaki örnek şu şekilde olur:
melt video.avi in=30 out=79 -blank 15 video.avi in=30 out=79 -consumer xml:file.mlt
Yeni oluşturulan file.mlt
XML dosyasını "yeniden oynatmak" için , doğrudan doğrudan yapılabilen melt file.mlt
- veya daha eksiksiz bir komut satırı şöyle olacaktır:
melt xml:file.mlt -consumer sdl
... bunun anlamı şudur: xml
“üreticiyi” ( daha önce tüketici olduğunu unutmayın ) file.mlt
, çerçevelerini açmak için “tüketiciyi” sdl
(pencere) açın.
Bu durumda, .flv
basit bir seri hale getirme dosyasıyla segfault'a neden olan videoların bir XML seri hale getirme dosyasıyla gayet iyi çalıştığını gördüm !
Bu durumda, ortaya çıkan file.mlt
XML dosyası çözünürlük, kare hızı, kodek bilgisi vb. Gibi çok daha fazla ayara sahiptir - ancak doğrudan bir metin düzenleyicide çalışmak daha zordur:
<?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>