ffplay-別々のビデオとオーディオファイルを一緒に再生する方法


9

そのため、次のように、個別のビデオファイルとオーディオファイルを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 -

回答:


4

ビデオ情報は明らかに引き継がれていますが、正しいフレームサイズの緑の「雪」であり、恐ろしい緑の雪の中で踊っている実際の画像のヒントが含まれています。

これはピクセル形式でなければなりません。xyz2rgbDCP色空間をRGBに変換するフィルターを適用してから、生のビデオをにパイプしffplayます。ここでは、FFmpegが生のビデオがどのようにエンコードされているかがわからないので、おそらくxyz2rgbフィルターを再度適用しています。色空間を2度変換する場合でも、ビデオで何でも実行できます。


Matroskaフォーマットをのffplay代わりにパイプ処理して良い結果が得られましたrawvideo。これにより、オーディオをデコードする機能も提供されます(以下を参照)。Matroska形式には、あらゆる種類のコーデックを含めることができます。

オプションの順序は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 -

私は、次のようなオプションのための(IMOあまりあいまいな)構文を使用しました-filter:v代わりにし-vf-b:v代わりに-vb、そして-c:a代わりに-acodec

その形式でうまくいかない場合は、AVIを試してください。

ffmpeg -i picture.mxf -i sound.wav -f avi - | ffplay -

これは問題なく動作し、必要なフィルターを使用する必要もありませんでした。オーディオも機能していた。


slhck、ありがとうございます!わかりました。<br/> <br/> '-filter:v'に適切な出力形式が見つかりません-filter:v:無効な引数<br> <br> ?? (-vfも同じ)。コーデックとフィルターはここからです:goo.gl/avE1f-作者がそれを書いて、独自のコーデックとカラースペースフィルターを含むffmpegのカスタムインストール(この手順とそのファイルで機能する1つのバージョンのみ)を設計しました。デコードできます。カスタムffmegインストールは、画像MFX内に含まれる独自のJPEG2000 MJPEGイメージシーケンスを読み取ることができる必要があります。それが注記に役立つ場合:)
ビルルドルフヤーバーラッセル

おっと、私はダミーです。コマンドラインで改行 "\"を削除するのを忘れました。とにかく、今私があなたの提案を入力すると、数字はストリーミングを表示しますが、ウィンドウが開きません、そして約20秒後に次のように停止します:<br /> <br />セグメンテーションエラー:1136.0 size = 138kB time = 00:00:00.08ビットレート= 13445.2kbits / s
ビルルドルフ


ビデオありがとうございました。まず、最初のrawvideoコマンドには、間違ったサイズを指定しているという問題があります。入力には500x270が含まれていffplayます。少なくとも、それがにパイプされます。また、出力はrgb48le(フィルターのため)ピクセル形式ですが、をffplay想定yuv420pしているため、次も指定する必要がありますffplay -f rawvideo -s 500x270 -pix_fmt rgb48le -。segfaultについて:わからない…たぶん、どこかで小さなテストファイルを作成してアップロードできますか?
slhck

ああ、ファイルをテストしてください!本当にありがとう。500x270の理由は、サイズを2倍に削減する "lores 2"を指定したためです(きちんとした画面グラブに収まるように:)。背景として、このファイルは自家製のDCP(映画館では「デジタルフィルムプリント」と考えることができるため、メディアは非常に奇妙です)、2K、1998x1080(1.85平方ピクセルアスペクト)です。画像シーケンスを抽出するとき、それは正しいです、そして私は昨日パッケージを提出し、彼らはそれが上映される映画祭のDLPでそれを再生しました(フェスティバルでの1晩)-そしてそれは正しかったです(ふw!)。
Bill Rudolph Yaber Russell

3

これはストリームをトランスコードしません:

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、短いファイルと同じ長さになります。


このIntelをありがとう。出力ファイルは必要ありませんが、これらのスイッチは本当に知っておくと役に立ちます。
ビルルドルフヤーバーラッセル

3
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を追加しましたが、品質は低下しますが、レートが低く、少しバッファされるため、私のマシンでよりスムーズに実行されます。(また、何らかの理由で、最初にトランスコーディングを行わないと、MXFから125mb / sの強力なjpeg2000 mjpegシーケンスからフリーズフレームのみが取得されます。非常に高速なマシンで、コーデックを指定せず( "-c:v mpeg2video"を削除)、フルサイズ( "-lores 0")で開始し、0(-ss 0)から開始すると、2Kシネマを理論的に確認できます。そのままの品質のDCP。まあ、XMLに含まれている特別な指示を除いて-字幕やその他のプログラミング。しかし、一般的に。(ところで、「-ac:2」は5.1から2.0にダウンミックスします-ただし、5.1の試聴をサポートするハードウェアがある場合は、「-c:a copy」を使用してください。)

でマティアスのおかげベル・ニュイ、およびslhckを辛抱強くため上記は、このを通じて、私を歩きます。ありがとうございました!!!!これは非常に便利です。実際、日曜日の夜のエアロシアターでの恥ずかしい映画の上映から私を救いました。私の画像シーケンス番号付けは順不同でした-これでそれを見つけて修正しました!

うわー、これはすべて知っていたたった1つのコマンドラインです;)

チーレオ-b worldpoop.com


私はこのエラーを受け取りました:そのようなフィルターはありません: 'xyz2rgb'
Dr.jacky
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.