2016-02-13 27 views
1

的目標是從MKV產生HLS兼容MPEGTS片,用-c:v copy複製的視頻,但轉碼的音頻。分裂做-c時精確的.ts件與ffmpeg的:V複製

但是,由於輸入求(-ss)的ffmpeg尋求關鍵幀(對我來說,這似乎是以前的最近的關鍵幀),我得到視頻的N秒無音頻大多數段之前,從開始關鍵幀。

可能的解決方案是:

  1. 定義段偏移/持續時間,使得它實際上關鍵幀匹配;問題是我不知道如何快速提取關鍵幀列表和它們的偏移量

  2. 強制ffmpeg以某種方式尋找適當的時間,並生成一個關鍵幀以開始段; 編輯:我想這是不可能的,因爲生成一個關鍵幀改變後,所有的幀,這是不可能的-c:v copy

,除非他們的源代碼演示了一個解決問題的方法請不要建議現有的HLS解決方案。必須使用ffmpeg來按需生成每個段。

+0

如果你看看https://trac.ffmpeg.org/wiki/Seeking#Seekingwhiledoingacodeccopy你會看到,尋求在複製過程中是不可能準確地做。也許你可以計算得到的關鍵幀,轉碼文件到關鍵幀所需的幀,並連接與文件開始在關鍵幀... –

回答

0

您的解決方案1,您可以使用ffprobe -show_frames得到幀。關鍵幀信息是輸出的一部分。選項-print_format json容易解析。