视频二进制流RAW文件转图片完整教程

视频二进制流RAW文件转图片完整教程

不管你是纯二进制裸流(如H.264/H.265裸流、YUV/RGB原始帧),都能一键转成 JPG/PNG 图片。

核心工具:FFmpeg(万能、免费、无门槛)

所有RAW视频流转图片,FFmpeg 是唯一通用解决方案,Windows/Mac/Linux 都能用。


第一步:安装 FFmpeg

Windows

  1. 去官网下载:https://ffmpeg.org/download.html
  2. 解压后把 bin 目录加入系统环境变量
  3. 打开 cmd 输入 ffmpeg -version 验证成功

Mac

bash 复制代码
brew install ffmpeg

Linux

bash 复制代码
sudo apt install ffmpeg

第二步:根据你的 RAW 类型选择命令

以下是复制就能用的命令,你只需要改文件名。

1. 最常见:H.264 / H.265 视频裸流(.raw/.h264/.265/.hevc)

这是摄像头、监控、网络流最常见的 RAW 二进制流。

提取所有帧为图片:

bash 复制代码
ffmpeg -i video.raw frame_%04d.jpg

只提取第一帧(最常用):

bash 复制代码
ffmpeg -i video.raw -vframes 1 output.jpg

如果是 H.265 裸流,指定编码:

bash 复制代码
ffmpeg -i video.raw -c:v hevc -vframes 1 output.jpg

2. YUV 原始图像裸流(YUV420p 最常见)

如果你的 RAW 是无压缩像素裸流(摄像头原始数据),必须指定分辨率:

bash 复制代码
ffmpeg -f rawvideo -pixel_format yuv420p -s 1920x1080 -i video.raw -vframes 1 output.jpg

你只需要修改:

  • 1920x1080 → 你的视频分辨率
  • yuv420p → 你的格式(常见 yuv422p / rgb24)

3. RGB 二进制裸流(RGB24/RGB888)

bash 复制代码
ffmpeg -f rawvideo -pixel_format rgb24 -s 1280x720 -i video.raw -vframes 1 output.jpg

第三步:最简单的 Python 代码(不装 FFmpeg 也能转)

如果你想用代码直接把二进制流转图片,我给你一段极简可用代码:

python 复制代码
import cv2
import numpy as np

# 读取 RAW 二进制文件
raw_data = open("video.raw", "rb").read()

# 根据你的格式设置(必须改!)
width = 1920
height = 1080
fmt = "yuv420p"  # 或 rgb24 / bgr24

# 转换为图片
if fmt == "yuv420p":
    yuv = np.frombuffer(raw_data, dtype=np.uint8)
    img = cv2.imdecode(yuv, cv2.IMREAD_COLOR)
elif fmt == "rgb24":
    img = np.frombuffer(raw_data, dtype=np.uint8).reshape(height, width, 3)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

# 保存图片
cv2.imwrite("output.jpg", img)
print("转换完成:output.jpg")

依赖安装:

bash 复制代码
pip install opencv-python numpy

总结

  1. 视频裸流(H.264/H.265) → 用 FFmpeg 最简单
  2. 像素裸流(YUV/RGB) → 需要指定分辨率和格式
  3. 命令一行搞定,无需复杂工具
  4. 给出的 Python 代码可直接集成到项目里
相关推荐
青少儿编程课堂几秒前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会图形化考级:校园大富翁经营闯关解析
c++·python·算法·bfs·信息学竞赛
zhanlang02175 分钟前
HTML 零基础入门到企业实战【第五章 5.4】内嵌网页 iframe 标签:嵌入网页、视频、地图实战
前端·html·音视频
TengTaiTech9 分钟前
头戴耳机做运动相机外接麦:一颗麦克风同时服务蓝牙通话与 3.5mm 录音的底层重构
数码相机·音视频·蓝牙·qcc
特立独行的猫A6 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
无奈笑天下9 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
大可不必了11 小时前
03 函数定义和调用
开发语言·python
承渊政道12 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛12 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
imgsq12 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
威嵌神州13 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存