4

MJPEGストリームをファイルに保存する際に問題があります。MJPEGこのようなパイプラインを使用してストリーミングすると:

gst-launch filesrc location=thirdmovie640x360.mp4 ! decodebin2 name=dec \
    ! queue ! ffmpegcolorspace ! jpegenc ! queue ! avimux name=mux \
    ! udpsink host=192.168.0.2 port=5000

このようなパイプラインを使用して、2 台目のマシンでこのストリームを再生できます。

gst-launch -v udpsrc port=5000 ! jpegdec ! autovideosink

ただし、そのようなMJPEGストリームをファイルに保存するには (トランスコードせずに!)、一部のメディア プレーヤーで再生できるようにするにはどうすればよいですか? おすすめのパイプラインを教えてください。


出力ストリームを matroska ファイルとして保存するパイプラインを見つけました。

gst-launch udpsrc port=5000 ! multipartdemux ! jpegparse ! jpegdec \
    ! ffmpegcolorspace ! matroskamux ! filesink location=output.mkv

mp4ファイルを保存するように変更するには? そのようなパイプライン:

gst-launch udpsrc port=5000 ! multipartdemux ! jpegparse ! jpegdec \
    ! ffmpegcolorspace ! mp4mux ! filesink location=output.mp4

動作しません。MJPEG ビデオをトランスコードせずに mp4 contener (または avi contener) として保存する方法を教えてください。

4

2 に答える 2

6

問題を解決しました。私が探していたパイプラインは次のとおりです。

サーバ

gst-launch filesrc location=thirdmovie640x360.mp4 ! decodebin2 name=dec
! queue ! ffmpegcolorspace ! jpegenc ! queue ! multipartmux
! udpsink host=192.168.0.4 port=5000

クライアント

gst-launch udpsrc port=5000 ! multipartdemux ! image/jpeg, framerate=25/1 
! jpegparse ! jpegdec ! ffmpegcolorspace ! jpegenc
! avimux ! filesink location=output.avi
于 2012-10-04T11:02:51.097 に答える
0

MJPEG は、簡単に言えば、一連の jpeg 画像があることを意味するコーデックです。ビデオとして表示する場合は、これらの jpeg をコンテナーに保存する必要があります。MP4 は、それらを格納するための一般的なコンテナーです。

したがって、jpegenc 出力を mp4mux に多重化し、ファイルに保存できます。適切なメディア プレーヤーであれば、再生できるはずです。

于 2012-10-03T22:41:57.430 に答える