このライブラリに関するドキュメントは本質的に存在しないため、ここであなたの助けが本当に必要です.
目標: MPEG トランスポート ストリームに渡すことができるように、H264 エンコーディングが必要です (できればオーディオとビデオの両方を使用しますが、ビデオだけでも問題ありません。オーディオも動作させるために数日間試してみます)。
私が持っているもの:サンプルバッファを記録して出力するカメラがあります。入力はカメラバックと内蔵マイク。
いくつかの質問: A. カメラに CMSampleBuffer を H264 形式で出力させることは可能ですか?つまり、2014 では VTCompressionSessions から生成されていますが、captureOutput を書き込んでいるときに、既に CMSampleBuffer を取得していることがわかります... B. VTCompressionSession を設定するにはどうすればよいですか? セッションはどのように使用されますか?これに関する最上位レベルでの包括的な議論は、ほとんど文書化されていないこのライブラリで実際に何が起こっているのかを人々が理解するのに役立つかもしれません。
ここにコードを記述してください (必要に応じてさらに質問してください。コードの残りの部分がどの程度関連しているかがわからないため、captureOutput のみを入れています):
func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!) {
println(CMSampleBufferGetFormatDescription(sampleBuffer))
var imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
if imageBuffer != nil {
var pixelBuffer = imageBuffer as CVPixelBufferRef
var timeStamp = CMSampleBufferGetPresentationTimeStamp(sampleBuffer as CMSampleBufferRef)
//Do some VTCompressionSession stuff
}
}
皆さんありがとう!