如何以正确的大小从 VOB 中保存帧?

Posted

技术标签:

【中文标题】如何以正确的大小从 VOB 中保存帧?【英文标题】:How to save frame from VOB with correct size? 【发布时间】:2017-08-10 00:56:27 【问题描述】:

我正在使用 ffmpeg 从一个 vob 文件中保存单个帧。

ffprobe 显示我的 vob 文件:

流 #0:1[0x1e0]:视频:mpeg2video(主要)、yuv420p(电视)、720x480 [SAR 8:9 DAR 4:3],隐藏式字幕,3750 kb/s,29.97 fps,29.97 tbr, 90k tb,59.94 tbc

我的命令行是

ffmpeg -i File1.vob -ss 10 -q:v 2 -vframes 1 -an -sn frame10s.jpg

我的 jpeg 文件保存为 720x480,水平拉伸。如何使它们以正确的显示比例 640x480 保存?

【问题讨论】:

【参考方案1】:

使用

ffmpeg -i File1.vob -ss 10 -vf scale=iw*sar:ih,setsar=1 -q:v 2 -vframes 1 frame10s.jpg

缩放器将输入宽度乘以存储的像素纵横比以生成正方形像素表示。

图像格式不支持音频或字幕,因此无需禁用它们。

【讨论】:

为什么设置 sar=1 也是必要的? 只是为了确保生成的 SAR 正好为 1。有时它可以记录为 2800:2801 之类的东西,尤其是在 PNG 中。

以上是关于如何以正确的大小从 VOB 中保存帧?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SocketTCP 获取数据以保存到 Spark Scala 中的数据帧?

如何以两种不同的大小从图像选择器中保存图像

vob视频文件的音质好点还是mp3 320kp的音质好.高人懂的回答

Qt OpenCV从捕获帧写入视频,不保存

如何使用 imageio 调整图像大小以获得正确的 ICO 文件?

如何从麦克风实时获取原始音频帧或从 iOS 中保存的音频文件获取原始音频帧?