python实现MP4加密分段流媒体服务器代码

代码语言:python

所属分类:其他

代码描述:python实现MP4加密分段流媒体服务器代码,包含网页端采用hls播放解密视频

代码标签: python MP4 加密 分段 流媒体 服务器 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
encrypted_mp4_player.py

功能:
- 使用 ffmpeg 将 mp4 切割为 HLS 切片
- 使用 AES-128 加密切片
- Python 内置 HTTP 服务提供 m3u8 / ts / key
- 内嵌 HTML 页面
- 前端使用 hls.js 在浏览器实时解密播放

依赖:
- Python 3.8+
- ffmpeg 必须在 PATH 中
- 首次播放需要能加载 hls.js:
  - 联网时自动从 CDN 加载
  - 离线时可将 hls.min.js 放到脚本目录

使用示例:
    python encrypted_mp4_player.py input.mp4
    python encrypted_mp4_player.py input.mp4 --port 8080
    python encrypted_mp4_player.py input.mp4 --copy
    python encrypted_mp4_player.py input.mp4 --force
"""

import argparse
import hmac
import os
import re
import secrets
import shutil
import subprocess
import sys
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
from pathlib import Path
from urllib.parse import urlparse, parse_qs

BASE_DIR = Path(__file__).resolve().parent
TOKEN = secrets.token_hex(16)
OUT_DIR = None


HTML_TEMPLATE = r'''
<!doctype html>
<html lang="zh">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>MP4 网页加密播放器</title>
  <style>
    body {
      font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background: #111;
      color: #eee;
      margin: 24px;
    }
    h1 {
      font-size: 22px;
      margin-bottom: 14px;
    }
    video {
      width: 100%;
      max-width: 960px;
      background: #000;
      border-radius: 10px;
      outline: none;
  .........完整代码请登录后点击上方下载按钮下载查看

网友评论0