そういうのが欲しければmjpegもあるので、jpegは1枚目だけあれば後ろは要らないんだけど…と言うワケで、こういうときはスクリプトで分割して先頭画像だけ切り出し。
軽くjpegのフォーマットを調べてみると、ファイルの終端はFFD9になっているらしい。
とりあえずなにも考えずに先頭からFFD9まで読み込むcgiスクリプトを作成。データ途中にFFD9が出てくる可能性は気にしないでおく。
#!/usr/bin/ruby
require 'net/http'
# continuous jpeg cutting script.
# made for ffserver.
print "Content-type: image/jpeg\n\n"
flag = false
Net::HTTP.version_1_2
Net::HTTP.start('localhost', 8090) {|http|
http.request_get('******.jpg'){|response|
response.read_body{|str|
str.each_byte do |ch|
putc ch
if flag && (ch == 0xd9)
exit()
end
if ch == 0xff
flag = true
else
flag = false
end
end
}
}
}
フラグ使ってるのはちょっとどうかと思うけど、まあこんなものかな。
一応動く。
No comments:
Post a Comment