国家標準ビデオ クラウド サービス EasyGBS 国家標準ビデオ プラットフォーム デバイスのビデオ ダウンロード ファイルは ps 形式ですが、MP4 形式に変更するにはどうすればよいですか?

EasyGBS は、国家標準 GB/T28181 プロトコルに基づくビデオ クラウド サービス プラットフォームで、イントラネットまたは公共ネットワーク上の国家標準デバイスへのシームレスかつ完全なアクセスをサポートするだけでなく、RTSP、RTMP、FLV、HLS、WebRTC なども提供します。ストリーミング配信サービスにより、フルプラットフォーム、フルターミナルでの出力が可能です。

一部のユーザーは、EasyGBS 機器を使用してビデオを録画すると、通常は MP4 ファイルがダウンロードされるべきであるのに、PS ファイルがダウンロードされることがわかったと報告しました。このフィードバックを受けて、私たちはすぐに調査を実施しました。

 

ps ファイルの特殊性により、多くのプレーヤーが ps ファイルをサポートしていないため、ユーザーが簡単に再生できるように ps ファイルを mp4 ファイルに変換する必要があります。

次の参照コードを追加して、ffmpeg を使用して ps を mp4 に変換できます。

if len(filenamehz) == 2 && filenamehz[1] == "ps" {
        outFile := filepath.Join(utils.DataDir(), "downloads", fmt.Sprintf("%s.mp4", filenamehz[0]))
        inFile := filepath.Join(utils.DataDir(), "downloads", filename)
        if _, err := os.Stat(inFile); os.IsNotExist(err) {
            c.AbortWithStatusJSON(http.StatusBadRequest, "录像文件不存在或已过期")
            return
        }
        ff.H264ToMP4(inFile, outFile)
        header := c.Writer.Header()
        header["Content-type"] = []string{"application/octet-stream"}
        header["Content-Disposition"] = []string{"attachment; filename=" + strings.ReplaceAll(filename, ".ps", ".mp4")}
        if !utils.Exist(outFile) {
            c.AbortWithStatusJSON(404, "file not found")
            return
        }
        c.File(outFile)
        if err := os.Remove(outFile); err != nil {
            log.Println(err)
        }
        if err := os.Remove(inFile); err != nil {
            log.Println(err)
        }
}

 追加後、デバイス録画ページは正常にダウンロードされ、通常のプレーヤーでも録画ビデオを再生できます。

EasyGBS は、優れたビデオ リソース アクセスと処理能力により、リアルタイム ビデオ モニタリング、ライブ ブロードキャスト、録画、検索とレビュー、音声インターコム、クラウド ストレージ、アラーム、プラットフォーム カスケードなどの機能を実現できます。このプラットフォームは、ビジネス プラットフォームとして直接使用することも、ビデオ機能レイヤー プラットフォームとして呼び出すこともでき、明るいキッチンや明るいストーブ、スマートな建設現場、雪良プロジェクト、安全な村など、多くのプロジェクト シナリオに実装されています。

 

おすすめ

転載: blog.csdn.net/EasyNTS/article/details/132754341