.flvビデオでh264ストリームを逆多重化すると、ffmpeg
常に.mp4コンテナに再多重できないストリームが作成されます(またはMP4Box from package *gpac),
使用ffmpeg
)。
これは「無効な」ストリームを生成する逆多重化コマンドです。不明な形式)
ffmpeg -i "(h264-aac).flv" # get stream info
# Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 259 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
ffmpeg -y -map "0.0" -vcodec copy -an -i "(h264-aac).flv" \
"(h264-aac).flv.h264"
私も-f h264を試しましたが、同じエラーが発生しました。
上記のコマンドは、コンテナのビデオに対して実行されたときに機能するため、.mp4
これはflv
特定の(?)です。
h264ビデオストリームを分離する最も近い方法は、次のコマンドを使用することです。ただし、これはflv
アスペクト比を失うコンテナにストリームをラップします。
ffmpeg -y -map "0.0" -vcodec copy -an -i "(h264-aac).flv" \
"(h264-aac).flv.NEW.flv"
このビデオストリームを取得する方法はありますか?
PS。私はいくつかの異なる入力.flvビデオを試しましたが...同じエラーが発生しました。
ベストアンサー1
中間段階の目的は何ですか?生のH.264ストリームを最終的に.mp4コンテナに混在させる前に、コンテナではなくファイルとして保存しますか?
もちろん、生のmpeg2ビデオストリームや.aacオーディオトラックはコンテナオーバーヘッドなしで保存できますが、ご存知のように、アプリケーションフレンドリーなファイル拡張子(.avc、.h264、.ts)の確実な候補はありません。 FFmpegまたはVLCが生のH.264ストリームをより簡単に操作できるようにするようです。
H.264ストリームが.mp4コンテナにある予定の場合、ビデオストリームを.flvファイルから.mp4ファイルに直接コピーし、オーディオを最終製品の途中で多重化する準備ができるまでそこに保存してみてはいかがでしょうか。 ?
コマンドラインは次のとおりです。
ffmpeg -i infile.flv -an -vcodec copy outfile.mp4
FFmpegがこの単純なコマンドラインに応答してエラーメッセージを表示すると、実際にファイルが破損している可能性があります。