melt

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
melt [2015/04/17 17:20] bjoernmelt [2018/10/24 11:14] (current) – [VOC export profile encoding profile] bjoern
Line 1: Line 1:
 += melt encoding sniplets
  
 +siehe auch https://www.mltframework.org/plugins/ConsumerAvformat/
 +
 +== VOC export profile encoding profile
 +  * XML code for manually editing the mlt file
 +<code>
 +<consumer pix_fmt="yuv420p" rescale="bilinear" width="1920" aspect="1,77778" top_field_first="2" preset="medium" f="mp4" flags2="-dct8x8" g="13" maxrate="5000k" bufsize="8192k" threads="0" vcodec="libx264" progressive="1" real_time="-3" bf="2" ab="192k" target="/mnt/usb/lnp256_fade2b.mp4" vpre="medium" r="50" height="1080" minrate="100k " acodec="aac" deinterlace_method="yadif" crf="21" ar="48000" vprofile="main" movflags="+faststart" mlt_service="avformat"/>
 +</code>
 +  * if you want to endoder with Shotcut, add a new profile and paste the following options:
 +<code>
 +pix_fmt=yuv420p
 +rescale=bilinear
 +width=1920
 +aspect=1,77778
 +top_field_first=2
 +preset=medium
 +f=mp4
 +flags2=-dct8x8
 +g=13
 +maxrate=5000k
 +bufsize=8192k
 +threads=0
 +vcodec=libx264
 +progressive=1
 +real_time=-3
 +bf=2
 +ab=192k
 +vpre=medium
 +r=50
 +height=1080
 +minrate=100k
 +acodec=aac
 +deinterlace_method=yadif
 +crf=21
 +ar=48000
 +vprofile=main
 +movflags=+faststart
 +</code>
 +
 +== group sniplets to uncut.mlt
 +<code>
 +melt -consumer xml babylon-2018-05-26_21-08-38-22834.ts babylon-2018-05-26_21-11-38-22834.ts > uncut.mlt
 +</code>
 +
 +
 +== dg50 encoding
 +Direkter encode aus den fuse-ts files
 +<code>
 +/home/voc/Shotcut.app/melt -progress -track \
 + /video/datengarten/intros/50.ts \
 +/opt/crs/fuse/datengarten/hd-capture-2/50/uncut.ts in=1857 out=$((1*60*60*25+3*60*25+52*25)) \
 +/opt/crs/fuse/datengarten/hd-capture-2/50/uncut.ts in=$((1*60*60*25+18*60*25+2*25)) out=162370 \
 + /video/datengarten/intros/outro.ts \
 + -attach-track frei0r.hqdn3d \
 + -consumer avformat:/video/datengarten/tmp/dg50-out3.mp4 f=mp4 acodec=aac ab=192k \
 + vcodec=libx264 crf=20 vminrate=100k vmaxrate=5000k vpreset="medium" \
 + movflags=+faststart bufsize=8192k pix_fmt=yuv420p threads=8
 +</code>
 +
 +Reencode des fertigen hd.mp4 um die pause herauszuschneiden (pause 1:04:00 -> 1:18:11)
 +<code>
 +melt -progress \
 + /video/datengarten/tmp/50-hd-camonly.mp4 in=0 out=96000 \
 + /video/datengarten/tmp/50-hd-camonly.mp4 in=117275 \
 + -consumer avformat:/home/voc/dg50-out.mp4 f=mp4 acodec=aac ab=192k vcodec=libx264 crf=20\
 + bufsize=8192k minrate=100k maxrate=5000k vprofile=main vlevel=4.0 movflags=+faststart pix_fmt=yuv420p
 +</code>
 +
 +== timvideo
 +<code>xvfb-run -a melt /encode-final/lca2014-intro.dv \
 + -filter watermark:"/encode-tmp/gentilli/101/101-title.png" \
 +  in=300 out=500 composite.progressive=1 producer.align=centre composite.valign=c  composite.halign=c \
 + /encode-tmp/gentilli/101/start-101.dv \
 + /encode-tmp/gentilli/101/2014-01-09_15-42-23.dv \
 + /encode-tmp/gentilli/101/2014-01-09_16-18-04.dv \
 + /encode-tmp/getilli/101/2014-01-09_16-21-59.dv \
 + /encode-fin1al/lca2014-exit.dv -consumer avformat
 +</code>
 +
 +== channel mapping
 +  melt ./${file[$i]} $INOUT -profile pal -filter channelcopy to=1 from=0 \
 +  -consumer avformat:./${output[$i]}.webm progress=1 vb=1000k quality=good deadline=good \
 +  deinterlace=1 deinterlace_method=yadif
 +
 +== shotcut/kdenlive project file rendern
 +
 +mono mp4 z.B. Repair mit Backup Recording aus Kamera rendern:
 +
 +  melt -progress -track --project 1005.mlt  -consumer avformat:./1005-cut.mp4 f=mp4 acodec=aac ab=192k channels=1 vcodec=libx264 crf=20 bufsize=8192k minrate=100k maxrate=5000k vprofile=main vlevel=4.0 movflags=+faststart pix_fmt=yuv420p
 +
 +  
 +== melt transcode (fosdem)
 +<code bash>
 +#!/bin/bash
 +#
 +#        (c) 2013-2015 Holger Levsen         holger@layer-acht.org
 +#        GPL2 licenced
 +
 +title[0]="Stretching out for trustworthy reproducible builds"
 +speaker[0]="Holger and Lunar"
 +file[0]="k1105_la_fontaine_a_31_142433.mp4"
 +begin_offset[0]="9385"
 +end_offset[0]="17913"
 +
 +
 +videos=1
 +
 +for i in $(seq 0 $videos) ; do
 + if [ -z "${file[$i]}" ] ; then 
 + continue
 + fi
 + if [ -z "${speaker[$i]}" ] ; then 
 + echo "${title[$i]} using ${file[$i]}"
 + output[$i]=$(echo ${title[$i]} | sed -s "s# #_#g" )
 + else
 + echo "${title[$i]} by ${speaker[$i]} using ${file[$i]}"
 + output[$i]=$(echo ${title[$i]} by ${speaker[$i]} | sed -s "s# #_#g" )
 + fi
 + echo "                 -> ${output[$i]}"
 + IN=""
 + OUT=""
 + # 25 frames per second
 + if [ ! -z ${begin_offset[$i]} ] ; then
 + IN="in=$(echo ${begin_offset[$i]}*25|bc)"
 + fi
 + if [ ! -z ${end_offset[$i]} ] ; then
 + OUT="out=$(echo ${end_offset[$i]}*25|bc)"
 + fi
 + INOUT="$IN $OUT"
 + echo $INOUT
 + if [ ! -f ./${output[$i]}.webm ] ; then
 + melt ./${file[$i]} $INOUT -profile pal -filter channelcopy to=1 from=0 \
 + -consumer avformat:./${output[$i]}.webm progress=1 vb=1000k quality=good \
 + deadline=good deinterlace=1 deinterlace_method=yadif
 + fi
 +done
 +</code>