したがって、次のように、別々のビデオファイルとオーディオファイルを1つのムービーファイルにトランスコードすることができます。
ffmpeg -ss 0 -lowres 0 -r 24 -i dcp/picture.mxf -vf "xyz2rgb" -i mov/sound.wav -ac 2 -ab 256k -vb 3000k -t 10 -y mov/movie.mp4
そして、次のように結果の映画を見て、聞いてください:
ffplay -ss 0 -lowres 1 -vf "xyz2rgb" mov/movie.mp4
ただし、映画とサウンドを1つのファイルにトランスコードしてから表示する必要がないように、2つの別々のファイルを一緒に再生したいと思います。私の知る限り、ffplayでは2つの異なるファイルを組み合わせることができません(右?)。
これらのフォーラムを読むと、次のことができるようです ffmpeg出力をffplayにパイプします 。以下は私が得た限り近いです。それほど近くはありません。 :(ビデオ情報は明らかに引き継がれていますが、適切なフレームサイズの緑の「雪」であり、恐ろしい緑の雪の中で踊っている実際の画像のヒントがあります。このようにして、実際の画像データの一部が引き継がれていることがわかります。 、正しくレンダリングされないだけです。まったく。
そして、オーディオは再生されません。音が引き継がれていません(私は思いません。)今...私は立ち往生しています。以下は私がやろうとしていることを示唆していますが、それは機能していません:
ffmpeg -ss 0 -lowres 0 -r 24 -i dcp/picture.mxf -vf "xyz2rgb" -i mov/sound.wav -f rawvideo - | ffplay -f rawvideo -vf "xyz2rgb" -s 1998x1080 -
ffmpeg -lowres 2 -ss 0 -r24 -i MOVIE.MOV -ss 0 -i AUDIO.WAV -vf xyz2rgb -ac: 2 -c:v mpeg2video -f avi - | ffplay -
私の目的では、これにより、迅速な DCPの内容のレビュー (デジタルシネマパッケージ)が可能になります オープンソースツールでビルド 。 DCPはxyz色空間を使用するため、 xyzビデオフィルターをインストールする が必要です。そうでない場合、上の行では使用できません。 (それは大丈夫です、それはただ濃いオレンジ色に見えるでしょう、あなたは本当の色を見ることができません。)
Mpeg2videoコーデックb/cを追加しましたが、品質は低下しますが、レートが低く、バッファリングが少し少ないため、マシン上でよりスムーズに動作します。 (また、何らかの理由で、最初にトランスコードせずに、「-ss 0」を開始しない限り、つまり、「-ss 0」を開始しない限り、MXFから強力な125mb/sでフィードするjpeg2000mjpegシーケンスからフリーズフレームのみを取得します。ファイル。)コーデックなし( "-c:v mpeg2video"を削除)、フルサイズ( "-lores 0")、0(-ss 0)から始まる非常に高速なマシンでは、理論的に2Kシネマを確認できます。そのままの品質のDCP。ええと、XMLに含まれている特別な指示を除いて-字幕や他のプログラミング。しかし、一般的に。 (BTW "-ac:2"は5.1を2.0にダウンミックスします-5.1のオーディションをサポートするハードウェアがある場合でも、その場合は "-c:a copy"を使用します。)
Belle-Nuit のMatthiasと、上記の slhck に感謝します。ありがとうございました!!!!これは非常に便利です。そして実際、日曜日の夜にエアロシアターで行われる恥ずかしい映画の上映から私を救ってくれました。私の画像のシーケンス番号は順序が狂っていました-これでそれを見つけて修正しました!
うわー、これはすべて、知っていた1つのコマンドラインだけです;)
Cheereo --b worldpoop.com
これはストリームをトランスコードしません:
ffmpeg -i video.mkv -i audio.mkv -c copy -map 0:0 -map 1:1 output.mkv
-map 1:1
= 2番目のファイル、ストリーム1(通常はオーディオ)。 -c copy
= -c:v copy -c:a copy
。デフォルトでは、多重化されたファイルは長いファイルと同じ長さですが、-shortest
は、短いファイルと同じ長さになります。
ビデオ情報は明らかに引き継がれていますが、それは適切なフレームサイズの緑の「雪」であり、恐ろしい緑の雪の中で踊っている実際の画像のヒントがあります。
これはピクセル形式である必要があります。 DCP色空間をRGBに変換するxyz2rgb
フィルターを適用してから、生のビデオをffplay
にパイプします。ここでは、xyz2rgb
フィルターを再度適用しています。FFmpegは生のビデオがどのようにエンコードされているかわからないため、おそらく歪みが発生します。色空間を2回変換する場合でも、ビデオでやりたいことが何でもできます。
Matroskaフォーマットをffplay
ではなくrawvideo
にパイピングすると、良い結果が得られました。これにより、オーディオをデコードすることもできます(以下を参照)。 Matroska形式には、any種類のコーデックを含めることができます。
オプションの順序はFFmpegで重要であり、オプションを配置する場所がより厳密であるため、おそらくより新しいバージョンを使用する必要があることに注意してください。
-y
のようなグローバルオプションが最初に来ます。-r 24
は、picture.mxf
ファイルのフレームレートを強制します。あなたの状況では、実際にトランスコードする必要がないので、オーディオストリームをコピーするだけで意味があります。フィルタを適用できるようにするには、ビデオをトランスコードする必要があります。
このようなことをする必要があります。出力形式をmatroska
として明示的に設定し、ffplay
に残りの部分自体を理解させる方法に注意してください。
ffmpeg -r 24 -i dcp/picture.mxf -i mov/sound.wav \
-filter:v "xyz2rgb" -b:v 3000k -c:a copy -t 10 -f matroska - | \
ffplay -
-filter:v
の代わりに-vf
、-b:v
の代わりに-vb
、-c:a
の代わりに-acodec
などのオプションに(IMOのあいまいさの少ない)構文を使用しました。
その形式が機能しない場合は、AVIを試してください。
ffmpeg -i picture.mxf -i sound.wav -f avi - | ffplay -
これ 問題なく動作しました 、必要なフィルターを使用する必要さえありませんでした。オーディオも機能していました。