-4
AES暗号化されたビデオファイルをストリーミングしようとしています。しかし、我々は、私が要求した場合Golang AESはビデオをストリーミングする前に復号化します。http
ので、私のコードのhttpライターに復号化されたデータの出力を書き込む方法
が
package main
import (
"crypto/aes"
"crypto/cipher"
"io"
"log"
"net/http"
"os"
)
var key []byte = []byte("yourAESPrivateKey")
func ServeHTTP(w http.ResponseWriter, r *http.Request) {
inFile, err := os.Open("2.ts")
if err != nil {
log.Fatal(err)
}
defer inFile.Close()
block, err := aes.NewCipher(key)
if err != nil {
log.Fatal(err)
return
}
var iv [aes.BlockSize]byte
stream := cipher.NewOFB(block, iv[:])
w.Header().Set("Content-type", "video/mp4")
writer := &cipher.StreamWriter{S: stream, W: w}
if _, err := io.Copy(writer, inFile); err != nil {
log.Fatal(err)
return
}
//http.ServeContent(w, r, "video.mp4", time.Now(), inFile)
}
func main() {
http.HandleFunc("/", ServeHTTP)
http.ListenAndServe(":2020", nil)
}
誰かが私をdownvotedファイルの末尾を確認し、なぜですか? – aissa
解読したとしても、それは機能しません。ちょうどTSを読み、それを解読し、ブラウザにmp4を伝えることができます。ストリーム可能な断片化形式に変換し、マニフェストなどを生成する必要があります。 – szatmary
解読に問題はありますか?ストリーミングに問題はありますか?何が起こると予想され、実際に何が起こるのですか? – JimB