2015-06-09 4 views
0

Возможно ли вручную встраивать метаданные с временным текстом в файлы MP4? У меня есть файл TTML/SRT с метаданными. Мне просто нужно встроить текстовые данные, не кодируя видео/аудио.Встраивание метаданных с временным текстом в MP4

EDIT: Раньше мы использовали инъекции метаданных на сервере Wowza, которые мы используем для потоковой передачи в реальном времени. Что мне нужно сделать, это вручную вставить метаданные в предварительно записанные файлы MP4 без запуска видео через Wowza.

Вот один из таких видео файл, который был обработан Wowza:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'metadata-back.mp4': 
    Metadata: 
    major_brand  : f4v 
    minor_version : 0 
    compatible_brands: isommp42m4v 
    creation_time : 2015-04-16 11:12:39 
    Duration: 00:00:11.70, start: 0.000000, bitrate: 1373 kb/s 
    Stream #0:0(eng): Video: h264 (Baseline) (avc1/0x31637661), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 1352 kb/s, 28.60 fps, 30 tbr, 90k tbn, 60 tbc (default) 
    Metadata: 
     creation_time : 2015-04-16 11:12:39 
     handler_name : WowzaStreamingEngine 
     encoder   : WowzaStreamingEngine 
    Stream #0:1(eng): Audio: speex (spex/0x78657073), 16000 Hz, mono, s16, 17 kb/s (default) 
    Metadata: 
     creation_time : 2015-04-16 11:12:39 
     handler_name : WowzaStreamingEngine 
    Stream #0:2(eng): Data: none (amf0/0x30666D61), 0 kb/s (default) 
    Metadata: 
     creation_time : 2015-04-16 11:12:39 
     handler_name : WowzaStreamingEngine 

Теперь, если я запускаю команду ffmpeg -i new-meta.mp4 -i sub.srt -c copy -c:s mov_text -movflags +faststart out.mp4 и если я бегу ffmpeg -i out.mp4, я получаю это:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4': 
    Metadata: 
    major_brand  : isom 
    minor_version : 512 
    compatible_brands: isomiso2avc1mp41 
    encoder   : Lavf56.4.101 
    Duration: 00:00:07.27, start: 0.000000, bitrate: 925 kb/s 
    Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p, 1366x768 [SAR 1:1 DAR 683:384], 920 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default) 
    Metadata: 
     handler_name : VideoHandler 
    Stream #0:1(und): Subtitle: mov_text (tx3g/0x67337874), 0 kb/s (default) 
    Metadata: 
     handler_name : SubtitleHandler 

Теперь, как вы может видеть, что текст встроен в другой кодек (это правильный термин?). Также я не вижу звуковой дорожки.

Надеюсь, мой вопрос достаточно ясен. Мне нужен способ вставлять метаданные (от SRT/TTML) в MP4 видео должно быть вложено в amf формате (опять-таки это правильный термин?)

+1

В следующий раз задайте вопросы 'ffmpeg' cli в [su]. Только вопросы, которые имеют какое-то отношение к программированию, относятся к теме в Stack Overflow. – LordNeckbeard

+0

Жаль об этом. Будет заботиться. Благодаря!! :) –

ответ

1
ffmpeg -i in.mp4 -i subs.srt -c copy -c:s mov_text -movflags +faststart out.mp4 

Поддержка 3GPP TS 26.245 Timed Text (»mov_text ") в MP4 может варьироваться в зависимости от игрока.

+0

Спасибо человеку. Я смог успешно внедрить метаданные. Но у меня есть один вопрос. Мне нужно встроить его в метаданные AMF .. возможно ли это сделать? Я также обновил вопрос с выходом 'ffmpeg -i'. –

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