请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

我的播放命令是: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)?

正在回答 回答被采纳积分+3

2回答

李超 2023-08-23 10:04:21

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

0 回复 有任何疑惑可以回复我~
李超 2023-08-22 12:19:43

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕的地3102425 #1
    我的视频尺寸就是 852x480
    回复 有任何疑惑可以回复我~ 2023-08-22 15:52:15
  • 李超 回复 提问者 慕的地3102425 #2
    你可以调整你的尺寸,不调整的话你这个必然要花屏
    回复 有任何疑惑可以回复我~ 2023-08-23 01:35:09
  • 提问者 慕的地3102425 回复 李超 #3
    我把问题又补充了一下。我用VLC播放视频,查看到了视频的缓冲分辨率。按照缓冲分辨率写入文件和读取文件都正常。但是 FFmpeg 用什么api来读取视频缓冲分辨率的宽和高?
    回复 有任何疑惑可以回复我~ 2023-08-23 10:03:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信