You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何播放GStreamer录制的H264文件并恢复不可用的录制流

问题根源

你录制时的GStreamer管道犯了一个关键错误:加了avdec_h264解码步骤。这个元件会把H264编码的视频流解码成原始YUV像素数据,最后filesink保存的不是H264编码文件,而是未压缩的原始视频数据,自然无法用普通的H264播放器打开。

正确的录制命令

去掉解码相关的avdec_h264和videoconvert,直接保存H264的编码流:

gst-launch-1.0 -e -v udpsrc address=230.1.1.1 port=1720 multicast-iface=eth0 ! application/x-rtp, media=video, encoding-name=H264 ! rtph264depay ! h264parse ! filesink location=test_correct.h264

这个命令生成的标准H264文件,用VLC、ffplay或你原来的GStreamer播放命令都能正常打开。

播放已录制的错误文件

现有test.h264是原始YUV数据,播放时必须指定视频的分辨率、像素格式(要和原UDP流一致):

  • 用ffplay播放(假设原流是1920x1080、YUV420P格式):
ffplay -f rawvideo -pixel_format yuv420p -video_size 1920x1080 test.h264
  • 用GStreamer播放:
gst-launch-1.0 filesrc location=test.h264 ! videoparse format=I420 width=1920 height=1080 ! videoconvert ! autovideosink

如果不知道原流的分辨率和格式,可以先在录制前(用正确命令)加videoconvert ! autovideosink预览,同时查看GStreamer的日志输出,里面会包含视频的分辨率、格式信息。

内容的提问来源于stack exchange,提问作者khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:42:04