gpt4 book ai didi

FFMPEG - 缩放视频过滤器未提供预期结果

转载 作者:行者123 更新时间:2023-12-04 22:52:41 26 4
gpt4 key购买 nike

如果有人问过这个问题,我们深表歉意。我找不到它,但如果有,请告诉我,我会关闭它。

我正在尝试一个简单的视频比例,其原始尺寸为 480x360,目标尺寸为 400x300。视频以 FLV 开头,最终需要以 MPEG 结尾。我正在使用以下命令行来执行此操作:

ffmpeg -i user.flv -vf "scale=400:300" user_scaled.mpg

当我在 MPEG Streamclip 中播放缩放的视频时,比例正确,视频信息显示尺寸为 400x300。但是,当我在 Quicktime 中播放缩放后的视频时,视频会缩放到 478x359。更重要的是,FFMPEG 本身将视频视为 478x359,因此在其上执行的任何 future 命令(修剪、转换、覆盖等)都会产生 478x359 的视频。

最初的工作流程需要 FLV 到 MPEG 的转换,但我已经尝试了几种不同的输入和输出格式(FLV -> FLV、FLV -> MPEG、MPEG -> MPEG 等),结果都相同。不过,只要我能最终得到一个 MPEG,我就可以处理使这种缩放工作所需的许多步骤和转换。

我将在下面粘贴命令行输出,如果您愿意,下面还链接了一个示例输入视频。非常感谢您的帮助。

http://www.monkeydriver.com/dpassera/stack_flv.zip

命令行输出:
ffmpeg -i user.flv -vf "scale=400:300" user_scaled.mpg

ffmpeg version 0.7-rc1, Copyright (c) 2000-2011 the FFmpeg developers
built on May 21 2011 22:13:19 with gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
--mandir=/usr/share/man --incdir=/usr/include --disable-avisynth
--extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC'
--enable-avfilter --enable-libdirac --enable-libgsm --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264
--enable-gpl --enable-postproc --enable-pthreads --enable-shared
--enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
--disable-yasm --enable-filters --enable-filter=movie

libavutil 50. 40. 1 / 50. 40. 1
libavcodec 52.120. 0 / 52.120. 0
libavformat 52.108. 0 / 52.108. 0
libavdevice 52. 4. 0 / 52. 4. 0
libavfilter 1. 77. 0 / 1. 77. 0
libswscale 0. 13. 0 / 0. 13. 0
libpostproc 51. 2. 0 / 51. 2. 0

[flv @ 0x11dd3b30] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'user.flv':

Metadata:
duration : 5
videocodecid : 2
audiocodecid : 6
canSeekToEnd : true
createdby : FMS 4.0
creationdate : Mon Oct 31 11:43:44 2011

Duration: 00:00:04.62, start: 0.000000, bitrate: N/A
Stream #0.0: Video: flv, yuv420p, 640x480, 1k tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: nellymoser, 44100 Hz, mono, s16

[buffer @ 0x11ddc950] w:640 h:480 pixfmt:yuv420p

[scale @ 0x11dda610] w:640 h:480 fmt:yuv420p -> w:400 h:300 fmt:yuv420p flags:0xa0000004

[mpeg @ 0x11dd6bd0] VBV buffer size not set, muxing may fail

Output #0, mpeg, to 'user_scaled.mpg':
Metadata:
duration : 5
videocodecid : 2
audiocodecid : 6
canSeekToEnd : true
createdby : FMS 4.0
creationdate : Mon Oct 31 11:43:44 2011
encoder : Lavf52.108.0

Stream #0.0: Video: mpeg1video, yuv420p, 400x300, q=2-31, 200 kb/s, 90k tbn, 60 tbc

Stream #0.1: Audio: mp2, 44100 Hz, mono, s16, 64 kb/s

Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1

Press [q] to stop encoding
frame= 230 fps= 0 q=10.2 size= 366kB time=3.82 bitrate= 785.6kbits/s dup=175 drop=0
frame= 267 fps= 0 q=10.7 Lsize= 412kB time=4.43 bitrate= 761.3kbits/s dup=203 drop=0

video:370kB audio:36kB global headers:0kB muxing overhead 1.568959%

最佳答案

咬牙切齿后,我认为问题与ffmpeg无关,与有关。快速时间 .

Quicktime Player (10.1 (501.5)) 缩放视频以匹配窗口大小,并具有最小窗口大小。因此,无论实际视频大小如何,Quicktime 都会将其缩放到至少 480 x 360。这就是为什么信息显示在“格式”部分(真实大小)中有大小信息,但也有“当前大小”部分。更改窗口大小会更改后一个数字。

因此,使用 ffmpeg 或 -vf scale 缩放视频或只是 -s ,但不要相信 Quicktime Player 会以正确的大小向您显示它们。我推荐VLC作为一个非常有能力的选择。

关于FFMPEG - 缩放视频过滤器未提供预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7967989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com