Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FFMPEG-缩放视频过滤器未提供预期结果_Ffmpeg_Transcoding - Fatal编程技术网

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

FFMPEG-缩放视频过滤器未提供预期结果,ffmpeg,transcoding,Ffmpeg,Transcoding,如果有人问过这个问题,我会道歉。我找不到,但如果找到了,请让我知道,我会把它关闭 我正在尝试一个简单的视频缩放,其原始尺寸为480x360,目标尺寸为400x300。视频从FLV开始,最终需要以MPEG结束。我正在使用以下命令行执行此操作: ffmpeg -i user.flv -vf "scale=400:300" user_scaled.mpg 在MPEG Streamclip中播放缩放视频时,缩放正确,视频信息显示尺寸为400x300。但是,当我在Quicktime中播放缩放视频时,视频

如果有人问过这个问题,我会道歉。我找不到,但如果找到了,请让我知道,我会把它关闭

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

ffmpeg -i user.flv -vf "scale=400:300" user_scaled.mpg
在MPEG Streamclip中播放缩放视频时,缩放正确,视频信息显示尺寸为400x300。但是,当我在Quicktime中播放缩放视频时,视频将缩放到478x359。更重要的是,FFMPEG本身将视频视为478x359,因此将来对其执行的任何命令(修剪、转换、叠加等)都会生成478x359的视频

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

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

命令行输出:

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有关

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


因此,使用ffmpeg缩放视频,可以使用
-vf scale
或仅使用
-s
,但不要相信Quicktime Player会以正确的大小向您显示视频。我推荐一个非常有能力的替代方案。

在咬牙切齿之后,我认为问题与ffmpeg无关,而与Quicktime有关

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


因此,使用ffmpeg缩放视频,可以使用
-vf scale
或仅使用
-s
,但不要相信Quicktime Player会以正确的大小向您显示视频。我推荐一个非常有能力的替代品。

看起来不错。
ffprobe-show\u streams user\u scaled.mpg的输出是什么?您好。谢谢你看这个。完整的输出太长,无法粘贴,因此我将其放在文本文档中,这里是输出的摘录,其中提到了维度。希望有帮助:
Input#0,mpeg,来自“user_scaled.mpg”:。。。流#0.0[0x1e0]:视频:mpeg1video,yuv420p,400x300[PAR 1:1 DAR 4:3],104857kb/s,60fps,60tbr,90k tbn,60tbc。。。[STREAM]index=0 codec\u name=mpeg1视频codec\u long\u name=MPEG-1视频codec\u type=video codec\u time\u base=1/60 codec\u tag\u string=[0][0][0][0]codec\u tag=0x0000 width=400 height=300
看起来都是正确的,那么
ffprobe-show\u格式如何呢
标记,而不是整个ffmpeg前导)。如果容器格式有问题,您也可以尝试插入一个
-s400x300
。当然可以。输出如下。我还尝试了
ffmpeg-I user.flv-vf“scale=400:300”-s 400x300 user_scaled_2.mpg
ffmpeg-I user.flv-s 400x300 user_scaled_2.mpg
,结果相同(尺寸为478x359)
ffprobe-show\u format user\u scaled.mpg[format]filename=user\u scaled.mpg nb\u streams=2 format\u name=mpeg格式\u long\u name=mpeg-PS格式开始时间=1.000000持续时间=4.571433 size=421888.000000比特率=738303.000000[/format]
我很困惑。所有这些输出看起来都像是按应有的方式进行缩放。Quicktime和ffmpeg确实在为
user\u scaled.mpg
?如果你发布视频,我会尝试缩放它,但我不明白为什么你所做的不起作用。看起来一切正常。
ffprobe-show\u streams user\u scaled.mpg的输出是什么?您好。谢谢你看这个。完整的输出太长,无法粘贴,因此我将其放在文本文档中,这里是输出的摘录,其中提到了维度。希望有帮助:
Input#0,mpeg,来自“user_scaled.mpg”:。。。流#0.0[0x1e0]:视频:mpeg1video,yuv420p,400x300[PAR 1:1 DAR 4:3],104857kb/s,60fps,60tbr,90k tbn,60tbc。。。[STREAM]index=0 codec\u name=mpeg1视频codec\u long\u name=MPEG-1视频codec\u type=video codec\u time\u base=1/60 codec\u tag\u string=[0][0][0][0]codec\u tag=0x0000 width=400 height=300
看起来都是正确的,那么
ffprobe-show\u格式如何呢
标记,而不是整个ffmpeg前导)。如果容器格式有问题,您也可以尝试插入一个
-s400x300
。当然可以。输出如下。我还尝试了
ffmpeg-I user.flv-vf“scale=400:300”-s 400x300 user_scaled_2.mpg
ffmpeg-I user.flv-s 400x300 user_scaled_2.mpg
,结果相同(尺寸为478x359)<代码>ffprobe-显示\u格式用户\u scaled.mpg[格式]文件名=用户\u scaled.mpg nb\u流=2格式\u名称=mpeg格式\u long\u名称=mpeg-PS格式开始\u时间=1.000000持续时间=4.571433大小=421888.000000比特率=738303.000000