FFMPEG - Nome do arquivo de gravação (gravação) em vídeo

0

Eu queria saber se alguém pode me ajudar a adicionar um nome de arquivo com código de acesso usando o filtro drawtext no FFMPEG?

Eu posso adicionar timecode facilmente agora, mas também quero adicionar o nome do arquivo atual. Isso é possível?

/usr/local/bin/ffmpeg -i "P1010377.MOV" -c:a libfaac -q:a 150 -c:v libx264 -crf:v 12 -preset:v veryslow -intra -filter:v "scale=640:-1,drawtext=fontsize=15:fontfile=/Library/Fonts/Verdana.ttf:timecode='00\:00\:00\:00':rate=25:fontsize=32:fontcolor='white':box=1:boxcolor=0x000000AA:x=10:y=10" "P1010377.MOV.MP4"
    
por Taapo 10.11.2014 / 08:32

2 respostas

2

Adicione drawfilters extras à cadeia por vírgula separando-os

/usr/local/bin/ffmpeg -i "P1010377.MOV" -c:a libfaac -q:a 150 -c:v libx264 -crf:v 12 -preset:v veryslow -intra -vf "scale=640:-1, drawtext=fontfile=/Library/Fonts/Verdana.ttf:text='some filename.mp4':x=100:y=100:fontcolor='white', drawtext=fontsize=15:fontfile=/Library/Fonts/Verdana.ttf:timecode='00\:00\:00\:00':rate=25:fontsize=32:fontcolor='white':box=1:boxcolor=0x000000AA:x=10:y=10" "P1010377.MOV.MP4"
    
por 10.11.2014 / 18:41
0

Pouco atrasado, mas tive que fazer algo parecido, então vou compartilhá-lo aqui.

Ele se baseia na primeira resposta de user3770489, adicionando uma inserção automática de nome de arquivo, mas ainda usando expansão shell / argumento para a linha de comando.

Assumindo que você não está em um loop for / while sobre um conjunto de arquivos de filme, mas processando um único arquivo, você pode:

fn="P1010377.MOV" && /usr/local/bin/ffmpeg -i "$fn" -c:a libfaac -q:a 150 -c:v libx264 \ 
  -crf:v 12 -preset:v veryslow -intra -filter:v \ 
    "scale=640:-1,drawtext=fontsize=15:fontfile=/Library/Fonts/Verdana.ttf: \ 
    text='File=[$fn] - TC=': timecode='00\:00\:00\:00': rate=25:fontsize=32: \ 
    fontcolor='white':box=1:boxcolor=0x000000AA:x=10:y=10" \ 
  ${fn/.MOV/.MOV.MP4}
    
por 15.03.2015 / 19:59

Tags