Показать имя файла в пакете видео ffmpeg - PullRequest
0 голосов
/ 14 марта 2019

У меня есть папка с примерно 10 различными файлами MOV.Я хотел бы добавить имя файла в виде текста на каждое видео, используя ffmpeg в файле bat.Может ли кто-нибудь помочь мне добиться этого, пожалуйста?

РЕДАКТИРОВАТЬ:

Я пытался использовать

@ECHO OFF&Setlocal EnableDelayedExpansion
Set INPUT=E:\\Users\\Oli\\Documents\\Projects\\v1.3.0\\downloads3
Set OUTPUT=E:\\Users\\Oli\\Documents\\Projects\\v1.3.0\\downloads3
for %%a in ("%INPUT%\*.*") DO ( 
    set "filename=%%~na"
    ffmpeg -i "%%a" -vf "drawtext=text=!fileName:.= !:x=105:y=120:fontfile=E:\\Users\\Oli\\Documents\\Projects\\v1.3.0\\downloads3\\impact.ttf:fontsize=25:fontcolor=white" -b:v 1M -r 60 -b:a 320k -ar 48000 -crf 17 "%%~na.mov"
)`

Но это дает мне ошибку:

 Cannot find a valid font for the family Sans
[AVFilterGraph @ 0000026eb75a9f40] Error initializing filter 'drawtext' with args 'text=FileName1'
Error reinitializing filters!
Failed to inject frame into filter network: No such file or directory
Error while processing the decoded data for stream #0:0

1 Ответ

1 голос
/ 15 марта 2019

Давайте избавимся от присвоения переменной и просто используем расширение переменной, чтобы задать имя. Кроме того, хотя он все еще будет работать, удалите вторичную обратную косую черту, потому что она не нужна и выглядит некрасиво, наконец, всегда оборачивайте переменные set для путей в двойных кавычках. Попробуйте это.

@echo off
set "INPUT=E:\Users\Oli\Documents\Projects\v1.3.0\downloads3"
set "OUTPUT=E:\Users\Oli\Documents\Projects\v1.3.0\downloads3"
for %%a in ("%INPUT%\*.*") do (
    ffmpeg -i "%%~a" -vf "drawtext=text=%%~na:x=105:y=120:fontfile=%~dp0impact.ttf:fontsize=25:fontcolor=white" -b:v 1M -r 60 -b:a 320k -ar 48000 -crf 17 "%%~na.mov"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...