1

として表示される TV チューナー カードがあります/dev/video1。古いVHSテープをデジタル化しようとしています。TV チューナーは音声を出力しません。マイクにワイヤーが接続されています。

これは、ビデオとオーディオをキャプチャしてファイルに保存するために使用している gstreamer パイプラインです。フレームをドロップしてコンテンツを失いたくないので、モーション jpeg を使用しています。後で再エンコードします。

gst-launch-0.10 v4l2src device=/dev/video1 ! \
    queue ! \
    video/x-raw-yuv,width=640,height=480 ! \
    ffmpegcolorspace ! \
    jpegenc ! \
    avimux name=mux ! \
    filesink location=output.avi \
   pulsesrc ! \
    queue ! \
    audioconvert ! \
    audio/x-raw-int,rate=44100,channels=2 ! \
    mux.

これはすべてうまく機能します。ビデオとオーディオを含む再生ファイルがあります。ただし、出力ファイルを再生すると、オーディオとビデオが同期しなくなることがあります。ビデオの同じ場所で、多数の異なるメディア プレーヤー (トーテム、mplayer) で発生します。したがって、これはファイルの保存と記録の方法に問題があると思います。

オーディオ/ビデオの同期の問題が発生する可能性を低くするために、パイプラインに対してできることはありますか? 私は gstreamer とビデオ/オーディオ コーデックの初心者なので、ここで愚かなことをしている可能性があります (指摘してください!)。より良いビデオ/オーディオ/マルチプレクサコーデックはありますか?

4

1 に答える 1

2

audio ブランチに audiorate 要素を追加し、video ブランチに videorate 要素を追加して、違いが生じるかどうかを確認するか、qtmux や matroskamux などの別のマルチプレクサを試してください。

于 2012-01-11T21:35:36.917 に答える