Como passar uma variável Bash para o campo de sobreposição de timecode no filtro drawtext ffmpeg?

0

Então, eu estou tentando construir uma ação de pasta no Automator que levará qualquer arquivo mp4 inserido nele e sobrepor o arquivo ... "timecode" (na verdade, é apenas uma referência inicial para o timecode que eu quero sobrepor, que foi colado no título do arquivo da seguinte forma:

00/58/47; 02-test.mp4

com 00/58/47; 02 sendo a referência inicial do timecode que eu quero passar para o campo timecode do filtro drawtext para sobrepor no novo arquivo de vídeo.

Então, como sou muito novo para o bash, comecei a desmembrar a parte que queria e quando achei que tinha uma referência de timecode formatada corretamente, tentei passá-la para o filtro drawtext, mas não funciona ...

Eu acho que deve ter algo a ver com a forma como a variável $ TC está ou não está expandindo no comando ffmpeg. Quaisquer pensamentos ou dicas sobre como passar corretamente a variável de referência start timecode para o campo timecode overlay drawtext seria muito apreciado.

aqui é onde eu estou

    for f in "$@"
    do
    FILENAME=$(basename "$f")

    #grab TC start reference from Filename
    DTC=${FILENAME:0:11}

    # create variables for first string replace
    MATCH='/'
    REPL='\:'

    # Replace "/" with "\:"
    CTC="${DTC//$MATCH/$REPL}"

    # create variables for second string replace
    MATCH2=';'
    REPL2='\;'

    # Replace ";" with "\;"
    FTC="${CTC/$MATCH2/$REPL2}"

    #put formatted timecode in a variable
    TC="$FTC"

    /usr/local/bin/ffmpeg -i "$f" -vf \
    "format=yuv444p, \ 

    #### This ${TC} Variable doesn't work... if I type out a timecode ie. 
    #### '00\:58\:47\;02' within the single quotes it works fine
    drawtext=fontfile=/Library/Fonts/Arial.ttf :timecode='${TC}' \

    :rate=30000/1001 :x=(w-tw)/2: y=(h-th)/2: fontcolor=white: fontsize=36: \
    box=1: boxcolor=0x00000099, \
    format=yuv420p" \
    -c:v libx264 -r 30000/1001 \
    -x264opts "keyint=180:min-keyint=180:no-scenecut" \
    -c:a copy -movflags +faststart 
    "/Users/Station1/Desktop/TCDONE/${FILENAME%.*}.mp4"
    mv "$f" "/Users/Station-1/Desktop/TCOG/${FILENAME%.*}.mp4"
    done

Quaisquer soluções ou explicações sobre como passar corretamente a variável $ TC para o campo de sobreposição de timecode do filtro drawtext seriam muito apreciadas. Obrigado pela leitura!

    
por Derker 27.04.2017 / 22:35

0 respostas