2015-06-09 30 views
0

是否可以手動將定時文本元數據嵌入到MP4文件中? 我有一個包含元數據的TTML/SRT文件。我只需要嵌入文本數據,而不需要對視頻/音頻進行任何編碼。在MP4中嵌入定時文本元數據

編輯: 我們曾經使用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

下一次在[su]問''ffmpeg' cli問題。只有與編程有關的問題纔是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定時的文本(」 mov_text 「)在MP4中可能因玩家而異。

+0

謝謝你。我能夠成功地嵌入元數據。但我有一個問題。我需要將其嵌入爲AMF元數據..是否有可能這樣做?我已經用'ffmpeg -i'的輸出更新了這個問題。 –