2013-04-18 2 views
2

Я использую FFmpeg для обновления тегов метаданных, как таким образом:FFmpeg - многострочный текст в метаданных (тег комментария)

ffmpeg -i "in.m4a" -acodec copy -metadata artist="artist text" 
-metadata comment="comment text" "out.m4a" 

Ну, «художник текст» и «Текст комментария» обычно простой текст, но поле комментария позволяет размещать многострочный текст. Каждая строка должна иметь символ новой строки. Что-то вроде этого:

-metadata comment="source: lastfm \r\n tags: tag1, tag2 \r\n ..." 

Но все символы, которые я использую (\ г \ п,% п%^N) не приносят никакого результата.

Я бег ffmpeg.exe из PHP скрипта на Windows, с помощью shell_exec() функции

Кто-то помощи, пожалуйста, или скажите мне, действительно ли это возможно? ...

ответ

2

Вы можете сделать это с помощью PowerShell, используя `n для новой строки и, необязательно, `r для возврата каретки

ffmpeg -i in.m4a -metadata comment="hello`nworld" out.m4a 

Windows, по умолчанию оболочка cmd.exe поэтому вам может понадобиться, чтобы вызвать как этот

powershell ffmpeg -i in.m4a -metadata comment="hello`nworld" out.m4a 

Выход

 
Output #0, ipod, to 'out.m4a': 
    Metadata: 
    major_brand  : M4A 
    minor_version : 512 
    compatible_brands: isomiso2 
    comment   : hello 
        : world 
    encoder   : Lavf55.1.100 
+0

Да, это так! Чтобы он работал, я использую полный путь к ffmpeg. результат: правая строка: ** powershell D: \ folder \ ffmpeg.exe -i 'in.m4a' -acodec copy -metadata comment = "first line'nsecond line" 'out.m4a' -y ** Итак, Стивен Пенни большое спасибо! – Yaroslav

+0

И если путь или значения как 'comment =" мой альбом (mix) "' содержит скобки типа '(', ')', '[', ']' и т. Д., То вы должны использовать одинарную цитату против double: 'comment = 'мой альбом (mix)' '. Если необходимо использовать символ нарушения строки, тогда команда будет: ** комментарий = 'мой альбом' ''n' '(mix)' ** – Yaroslav

Смежные вопросы