インターネットの速度が遅すぎて高解像度を見ることができないので、私はたくさんのストリームをダウンロードします。ストリームをダウンロードすると、TSファイルを指す.m3u8ファイルが見つかります。次に、次のコマンドを使用します。
ffmpeg -i stream.m3u8 vid.mp4
これは機能します。しかし、それはすでに正しいフォーマットであるにもかかわらず、基本的にすべてを再コード化するため、非常に長い時間がかかります。再コーディングを回避するために、次のコマンドを使用できます。
ffmpeg -i stream.m3u8 -vcodec copy -acodec copy vid.mp4
これは、中断することなく最初から最後までプレイするときに問題なく機能します。しかし、前後にスキップすると、vlcでイメージを作成できません。数秒間正しく表示されません。これは非常に迷惑です。
私の質問:完全な再コーディングなしで、どの時点でも優れたvlcレンダリングを使用してビデオを作成するにはどうすればよいですか?
あなたはffmpegにファイルを単一のストリームに結合する代わりにmp4にエンコードするように求めています。 concatenate をtemp.ts
に変換してから、.mp4
を使用して-codec copy
に変換する必要があります。
また、2番目のステップ-bsf:a aac_adtstoasc
でadts
をaac
に変換する必要があると思います。
再エンコードしないと、ビデオのキーフレームなどを変更できず、説明した動作が発生する可能性があります。しかし、あなたは次のようなものを試すことができます
ffmpeg -i stream.m3u8 -codec:v" "libx264" "-preset" "ultrafast" vid.mp4
スピードで得たものは品質で失われるので、「速い」方が良いかもしれないことを覚えておいてください...