

私はm3u8ファイルを編集して、TSファイルの再生順序を変更したいと考えています。  
どなたか方法をご存知の方がいらっしゃったらご教授いただければと思い投稿いたします。

前提としてm3u8ファイルが1つ、TSファイルが数個あります。  
ffmpegでm3u8形式で出力すると以下のような結果が得られます。  
TSファイルを[1.ts → 2.ts →3.ts → 4.ts ]のように1→4に向けて再生するのが正しい状態です。  
以下は、実際のm3u8ファイルの中身です。

[code]

    #EXTM3U
    #ext-x-version:3
    #ext-x-media-sequence:0
    #ext-x-allow-cache:yes（キャッシュを許可する）。
    #ext-x-targetduration:5
    #extinf:4.027222,
    test0000.ts
    #extinf:4.004000,
    test0001.ts
    #extinf:4.004000,
    test0002.ts
    #extinf:4.004000,
    test0003.ts
    #EXT-X-ENDLIST
    
[/code]

このm3u8を以下の形式に書き換えて以下の内容を実現したいと考えています。  
TSファイルを[4.ts → 3.ts →2.ts → 1.ts ]のように4→1に向けて4から順番に再生したいとします。  
以下の通り、意図通りの再生順序にm3u8を編集しました。  
しかし、動画の再生が期待通りにいかず、固まってしまいます。

[code]

    #extm3u.
    #ext-x-version:3
    #ext-x-media-sequence:0
    #ext-x-allow-cache:yes
    #ext-x-targetduration:5
    #extinf:4.027222,
    test0003.ts
    #extinf:4.004000,
    test0002.ts
    #extinf:4.004000,
    test0001.ts
    #extinf:4.004000,
    test0000.ts 
    #EXT-X-ENDLIST
    
[/code]

このようにTSファイルの順番を変えたい場合、m3u8ファイルはどのように編集すればいいのでしょうか？  
それとも、ffmpegコマンドでtsファイルの順番を変えてから、m3u8ファイルを作り直せばいいのでしょうか？

ぜひお力を貸していただければ幸いです。


CC BY-SA 4.0
2022-01-27T07:35:03.457
85970
2022-02-02T05:10:17.700
2022-02-02T05:10:17.700
3060
22725
question
ffmpeg
ffmpegで出力されたm3u8を書き換えて、分割されたtsファイルの再生順序を変更したい


> このm3u8を以下の形式に書き換えて以下の内容を実現したいと考えています。  
>  TSファイルを[4.ts → 3.ts →2.ts → 1.ts ]のように4→1に向けて4から順番に再生したいとします。  
>  [...]  
>  しかし、動画の再生が期待通りにいかず、固まってしまいます。

m3u8ファイル書き換えによる動画セグメント順序の並べ替えは実現不可能です。  
TSファイルそのものにも「コンテンツ中における映像・音声の再生位置情報」が書き込まれています。（例： test0001.ts
には4～8秒位置で再生するための情報が含まれます。）

単にm3u8ファイルでのTSファイル記載順序を書き換えても再生位置情報はそのままですから、プレイヤーにとっては突然未来や過去の位置で映像・音声を再生せよという指示となり、動画再生が固まってしまったと考えられます。


CC BY-SA 4.0
2022-02-02T03:03:29.080
86086
2022-02-02T03:11:06.940
2022-02-02T03:11:06.940
49
49
85970
answer