4

意味のある形式でデータを取得しようと必死になっているSonyネットワークカメラ(SNC-RZ25N)を持っています。ドキュメントには、MPEG-4生データを送信すると記載されていますが、それ以上に具体的ではありません。curl( http://techhead.biz/media/tsv.m4v )を使用してストリームのセグメントをキャプチャでき、VLCとffplayを使用して再生されます(ffplayでは再生が速すぎます)。

1日半いじくり回した後、ffmpegを使用してこのストリームを直接変換できないことに気づきました。一つには、ffmpegが(私が知っている)入力としてパイプされたデータを受け入れる唯一の方法は、「yuv4mpegpipe」形式です。

指定されたフォーマットとして「m4v」を使用してffmpegにパイプしようとしましたが、処理を開始する前にストリーム全体を読み取りたいようです。

誰かが私がこれを行う方法を知っていますか?コマンドラインツールを使用していますか?プログラミング言語でオープンソースライブラリ?より単純なソリューションが推奨されますが、実用的なソリューションであればどれでもかまいません。

4

1 に答える 1

1

mplayerはHTTP経由でm4vファイルを再生できるようですが、少なくともサンプルファイルでは次のように機能します。

mkfifo /tmp/fifo
mplayer -benchmark -vo yuv4mpeg:file=/tmp/fifo http://techhead.biz/media/tsv.m4v
ffmpeg -f yuv4mpegpipe -i /tmp/fifo -vcodec libx264 -vpre libx264-hq /tmp/foo.mp4

(-benchmarkは、mplayerにフレーム期間を無視するように指示します。必要な場合と不要な場合があります)

または、mencoderだけで:

mencoder -o /tmp/foo.avi -of avi -ovc x264 -x264encopts bitrate=250 http://techhead.biz/media/tsv.m4v

最後に、実際にH.264が必要ない場合は、既存のMPEG-ESデータを必要なコンテナ形式で配置できます。MP4Boxはこれを実行できる可能性があり、ffmpegとmencoderは出力形式をサポートしている場合は実行できます。

于 2009-09-02T21:11:23.523 に答える