3

ビデオとオーディオの記録に TI DM365 EVM を使用しています。これら 2 つのストリームをエンコードし、.avi や .mp4 などのコンテナー ファイルに保存する必要があります。次の gstreamer パイプラインを使用しています。

gst-launch v4l2src always-copy=FALSE num-buffers=-1 do-timestamp=TRUE ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1280,height=720,framerate=30/1' ! 列 !TIVidenc1 codecName=h264enc engineName=codecServer byteStream=false genTimeStamps=true ! 列 !マックス。alsasrc num-buffers=-1 typefind=TRUE do-timestamp=TRUE ! audio/x-raw-int,width=16 ! 列 !TIAudenc1 codecName=aaclcenc engineName=codecServer genTimeStamps=真の名前=aenc ! 列 !マックス。avimux name=mux ! filesink location=vidaudtest.avi sync=true

その結果、.avi ファイルが得られますが、Totem Movie Player を使用して PC でファイルを再生すると、オーディオが通常の速度で再生されるのに対して、ビデオの再生が速すぎます。たとえば、5 分のファイルでは、ビデオの再生が 40 秒で終了します。

また、録音中に次のメッセージがいくつか表示されます。

WARNING: from element /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: Can't record audio fast enough
Additional debug info:
gstbaseaudiosrc.c(822): gst_base_audio_src_create (): /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:
Dropped 33516 samples. This is most likely because downstream can't keep up and is consuming samples too slowly.

他の誰かがこの動作を見たことがありますか? アイデアや解決策はありますか?

4

1 に答える 1

0

問題は、デバイスが要求したレートでフレームを配信できないことだと思います。videorate考えられる解決策は、要素を介してビデオストリームを実行することにより、ビデオストリームを「再サンプリング」することです。

v4l2src ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1280,height=720' ! videorate force-fps=30  ! ...

更新:あるいは、このようなものも機能する可能性があります:

... ! 'video/x-raw-yuv,format=(fourcc)NV12,width=1280,height=720' ! videorate ! 'video/x-raw-yuv,framerate=(fraction)30/1' ! ...
于 2012-10-23T07:06:58.227 に答える