课程11-13,自己的mp4文件参照视频,用代码生成黑白YUV视频文件,用ffplay播放的时候花屏。

来源:11-13 如何使用filter-输出数据

慕的地3102425

2023-08-22

我的播放命令是:ffplay -i out.yuv -pixel_format GRAY8 -video_size 852x480
video_size应该是没问题的。
我猜测出问题的是 -pixel_format ,但是我应该怎么查自己的黑白YUV视频文件的 pixel_format ?

图片描述

我在写入文件的时候,把 filt_frame->width * filt_frame->height 改成了图片中缓冲分辨率 864x480
命令改成: ffplay -i out.yuv -pixel_format GRAY8 -video_size 864x480
就能正常播放黑白视频了。
FFmpeg 有什么api能查询到缓冲分辨率(buffer dimension)?

写回答

2回答

李超

2023-08-23

你可以使用重采样,把图片的宽高变成你希望的宽高,这样你缓冲区大小还是设置成你图片的宽高就好了。

0
0

李超

2023-08-22

你的yuv 尺寸需要按标准来,不是随便一个尺寸都可以渲染成功,你把输出尺寸设置为640*480, 640*360等

0
3
慕的地3102425
回复
李超
我把问题又补充了一下。我用VLC播放视频,查看到了视频的缓冲分辨率。按照缓冲分辨率写入文件和读取文件都正常。但是 FFmpeg 用什么api来读取视频缓冲分辨率的宽和高?
2023-08-23
共3条回复

经典再升级-FFmpeg5.0核心技术精讲,打造音视频播放器

学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师

2726 学习 · 814 问题

查看课程