Windows XPでGStreamerを使用して、生の(YUV)ビデオのストリームを一連のAVIファイルに書き込みます。私が使用しているパイプラインの簡略版を以下に示します。
gst-launch -e -v videotestsrc pattern = smpte100 num-buffers = 10horizontal-speed = 1!video / x-raw-yuv、format =(fourcc)UYVY、width =(int)640、height =(int)480、framerate = 30/1!ffmpegcolorspace!avimux!multifilesink next-file = key-frame location = "frame_%d.avi" index = 1
私が抱えている最初の問題は、最初に書き込まれたファイルのファイル名が「frame_d.avi」であるということです。つまり、「%d」は「d」として解釈されているため、インデックスが文字列に置き換えられていません。これはUnicodeの問題だと思いますか?今のところ、filesinkのソースコードを変更することでこれを回避できますが、可能であればこれは行いません。
私が抱えている2番目の問題は、Windows Media PlayerでAVIファイルを表示しようとすると、次のメッセージが表示されることです。
「WindowsMediaPlayerはファイルを再生できません。Playerは、ファイルタイプをサポートしていないか、ファイルの圧縮に使用されたコーデックをサポートしていない可能性があります。」</ p>
(multifilesinkの代わりに)パイプラインでfilesink要素を使用しようとすると、MediaPlayerでビデオを表示できます。
16進エディターを使用してファイルの内容を見ると、マルチファイルシンクを使用すると、AVIヘッダーが書き出され、その後にYUVデータが続くことがわかります。
5249464610030000415649204c495354f80200006864726c6176696838000000 3582000080969800000000000000000000000000000000000100000000000000 80020000e0010000000000000000000000000000000000004c49535494020000 7374726c73747268380000007669647359555932000000000000000000000000 010000001e000000000000000000000000000000000000000000000000000000 0000000073747266280000002800000080020000e00100000100100059555932 00b00400000000000000000000000000000000004a554e4b1802000004000000 0000000030306462000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000004c495354100000006f646d6c 646d6c6804000000000000004c495354040000006d6f76693030646200600900 eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80 eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80 eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80 eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80 eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80 eb80eb80eb80eb80eb80eb80eb80eb80eb80eb80eb48d289d210d292d210d292 d210d292d210d292d210d292d210d292d210d292d210d292d210d292d210d292 d210d292d210d292d210d292d210d292d210d292d210d292d210d292d210d292 d210d292d210d292d210d292d210d292d210d292d210d292d210d292d210d292 d210d292d210d292d210d292d210d292d210d292d210d292d210d292d210d292 d210d292d210d292d210d292d210d292d210d292d210d292d210d292d210d292 d210d292d210d292d210d292aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10 aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10 aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10 aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10 aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10 aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10aaa6aa10 aaa6aa1091369122913691229136912291369122913691229136912291369122 9136912291369122913691229136912291369122913691229136912291369122 9136912291369122913691229136912291369122913691229136912291369122 9136912291369122913691229136912291369122913691229136912291369122 9136912291369122913691229136912291369122913691229136912291369122 91369122913691229136912291369122913691229136912291806a806aca6ade 6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade 6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade 6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade 6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade 6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade6aca6ade 6aca6ade6aca6ade6aca6ade6aca6ade6a9251e7515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f029f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296ef0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f029f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296ef0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f029f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f029f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0515a51f0 515a51f0515a51f029f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296ee29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296ee29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e 29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e29f0296e
filesinkを使用したときに生成された(そして正しく再生される)ヘッダーは次のようになります。
5249464608c45d00415649204c495354f80200006864726c6176696838000000 35820000b840190100000000100000000a000000000000000100000000000000 80020000e0010000000000000000000000000000000000004c49535494020000 7374726c73747268380000007669647359555932000000000000000000000000 010000001e000000000000000a00000000600900000000000000000000000000 0000000073747266280000002800000080020000e00100000100100059555932 00b00400000000000000000000000000000000004a554e4b1802000004000000 0000000030306462000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000004c495354100000006f646d6c 646d6c68040000000a0000004c49535454c05d006d6f76693030646200600900000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c495354100000006f646d6c 646d6c68040000000a000000449000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c495354100000006f646d6c 646d6c68040000000a0000004490004c495354100000006f646d6c 646d6c68040000000a0000004c49535454c05d006d6f766930306462006009000004c495354100000006f646d6c 646d6c68040000000a0000004c49535454c05d006d6f76693030646200600900
データ自体は問題ないように見えます。avimuxがUYUVからYUY2への変換を強制したという事実は別として、これをサポートするためにavimuxを変更する必要があることを意味します。
multifilesinkによって書き出されたヘッダーがfilesinkによって書き出されたヘッダーと異なるのはなぜですか。また、これらの違いによってビデオの再生が停止するのはなぜですか。
ご意見をお寄せいただきありがとうございます。