2

我在 FFMPEG 的帮助下从流中创建视频,并且我还使用 FFPROBE 来收集用于状态页面的信息,例如分辨率、编解码器等。

当 FFProbe 解析我的视频以获取信息时,我得到的分辨率值为 544x576(几乎是一个正方形!),但纵横比为 16:9。

这些值在输入流和我保存的视频上都是一致的。

然而,当我在标准 HTML5 播放器、VLC 或 FFPLAY 中观看视频时,我得到一个比例为 16:9 和分辨率(使用图像编辑程序测量)为 1024x576 的视频,看起来确实是原生的,并且没有以任何方式拉伸.

即使我使用稍微不同的编解码器重新编码视频,即使我使用的每个播放器都能正确显示,这个不正确的分辨率值仍然存在。

这有点不方便,因为我依赖于从视频中获取正确的分辨率值以进行进一步处理。

我还使用了 7 月 15 日编译的最新 FFMPEG+FFPROBE 版本。

这是FFMPEG中的错误还是我做错了什么?

使用的命令行:

FFMPEG:

ffmpeg -i source -loglevel debug -vcodec copy -acodec copy -bsf:a aac_adtstoasc -movflags +faststart -t 360 -y video.mp4

FFPROBE(我直接解析它的输出并保存值):

ffprobe -i source -show_format -show_streams 

FFProbe 输出:

width=544
height=576
coded_width=544
coded_height=576
has_b_frames=2
sample_aspect_ratio=32:17
display_aspect_ratio=16:9

我可以看到样本纵横比与显示纵横比不同,但是当它应该以接近正方形的分辨率编码时,为什么视频在 16:9 中看起来很合适?

4

0 回答 0