【问题标题】:How to save a .h264 stream to an image? C++如何将 .h264 流保存到图像? C++
【发布时间】:2018-05-21 08:41:38
【问题描述】:

已经开始工作了: 我通过局域网从嵌入式视频源(只是设备)获取视频,我可以从中获取视频并将其保存到文件“.h264”(附加到文件每个下一个“encodedPacket”,C++)(它工作正常,我可以播放使用 VLC 的文件)。

任务: 如何定期保存图像文件(例如 1 秒内 5 个)(任何格式,但我想要 jpg)?

文件信息:

视频 格式:AVC 格式/信息:高级视频编解码器 格式配置文件:Baseline@L3.1 格式设置 : 1 Ref Frames 格式设置,CABAC:否 格式设置,RefFrames : 1 帧 宽度:640 像素 高度:480 像素 显示纵横比:4:3 色彩空间:YUV 色度二次采样:4:2:0 位深:8位 扫描类型:逐行扫描

【问题讨论】:

标签: c++ image file video h.264


【解决方案1】:

ffmpeg 是你的朋友: https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video

我会尝试类似:ffmpeg -i input.h264 -vf fps=5 out%d.jpg

如果您的输入是网络流,您可以执行类似 ffmpeg -i tcp://local_hostname:port?listen 的操作

https://trac.ffmpeg.org/wiki/StreamingGuide

【讨论】:

  • 太棒了!但是如何不通过文件将我的流从我的程序路由到 ffmpeg?
  • 视频是如何传输的?请告诉我们格式。
  • 我不明白你的问题 :( 你是什么意思?视频格式:AVC 格式/信息:高级视频编解码器格式配置文件:Baseline@L3.1 格式设置:1 Ref Frames 格式设置, CABAC:无格式设置,RefFrames:1 帧宽度:640 像素高度:480 像素显示纵横比:4:3 色彩空间:YUV 色度子采样:4:2:0 位深度:8 位扫描类型:渐进式
  • 您正在通过 LAN 获取视频。它是 TCP、UDP、RTP、RTMP、DASH、HLS 还是其他一些传输格式。您的 H.264 流从一台计算机传输到另一台计算机。网络运输的方式是什么?
  • 我通过 UDP 使用私有协议(设备开发者的协议)从设备获取它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
相关资源
最近更新 更多