Мне было интересно, если кто-то может помочь мне добавить жестко закодированное имя файла, используя фильтр текста в FFMPEG?

Теперь я могу легко добавить тайм-код, но я также хочу добавить имя файла текущего файла. Это возможно?

/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"

2 ответа2

2

Добавьте дополнительные фильтры в цепочку, разделяя их запятыми

/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"
0

Немного поздно, но пришлось сделать что-то подобное, поэтому я поделюсь этим здесь.

Он основан на первом ответе user3770489, добавив автоматическую вставку имени файла, но все еще используя расширение / аргумент оболочки в командной строке.

Предполагая, что вы не находитесь в цикле for/while для набора файлов фильмов, но обрабатываете один файл, вы можете:

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}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .