本文介绍了FFMPEG命令作物和转自带的视频在质量差缩小出来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想,尺寸通常960x720的MP4视频转换成sqaure 480:480视频,但它找出来,通常压扁,命令是

  - Ÿ-i%S -vf作物= 480:480,转=%d个-threads 5  - 元数据:S:V旋转= 0 -c:v libx264 -crf 27  -  preSET超快-c:副本-bsf:一个aac_adtstoasc%的;

我失去了一些东西,我需要向下规模第一的东西?

**编辑加满控制台输出。 FFmpeg的命令被更新,但目标仍然是相同的,取一个任意的视频和方形裁剪

  07-14 22:30:32.813:D / ffmpeg的(30354):-y -i /data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4 -vf规模= IW * SAR:IH,转= 1 -threads 5  - 元数据:S:v旋转= 0 -c:v libx264 -crf 27  -  preSET超快-c:副本-bsf:一个aac_adtstoasc  - 方面1:1 /data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts
07-14 22:30:32.903:D / ffmpeg的(30354):新的时间reamining 9283
07-14 22:30:32.913:D / FFmpeg的(30354):运行发布的更新方法
07-14 22:30:35.963:D / ffmpeg的(30354):警告:连接器:/data/data/com.myapp.app/files/ffmpeg有文本重定位。这是浪费内存和prevents安全加固。请修正。
07-14 22:30:35.963:D / ffmpeg的(30354):ffmpeg的版本n2.4.2版权所有(C)2000-2014 FFmpeg的开发者
07-14 22:30:35.963:D / ffmpeg的(30354):建于2015年6月3日21时56分01秒用gcc 4.8(GCC)
07-14 22:30:35.963:D / ffmpeg的(30354):配置:--target-OS = Linux的--cross-$p$pfix=/Users/Brian1/development/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch =手臂--cpu = Cortex-A8的--enable-运行时cpudetect --sysroot = /用户/ Brian1 /开发/的ffmpeg-机器人/工具链功能的Andr​​oid / SYSROOT --enable-PIC --enable-小 - -enable-libx264 --enable-pthreads的--disable-muxers --enable-复用器= MPEGTS --enable-复用器= MP4 --disable-分路器--enable-分路器= MPEGTS --enable-分路器= MOV --enable -demuxer = MPEG --enable-分路器= MP4 --disable调试--disable-DE codeRS --enable-DE codeR = H264 --enable-DE codeR = AAC --disable - 装置--disable-CN codeRS --enable-CN codeR = libx264 --disable网络--disable---enable ffserver的,版本3 --enable-硬codeD-表 - 禁用-ffplay --disable-ffprobe --enable-GPL --enable-YASM --disable-doc的--disable共享--enable-静态--pkg-配置= /用户/ Brian1 /开发/的ffmpeg-的Andr​​oid / ffmpeg的-pkg配置 - preFIX = /用户/ Brian1 /开发/的ffmpeg-的Andr​​oid /编译/ armeabi-V7A氖--extra-CFLAGS =' - I /用户/ Brian1 /开发/的ffmpeg-的Andr​​oid /工具链功能的Andr​​oid /包括-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE = 2 -fno严格溢-fstack保护器,所有-mfpu =霓虹灯'--extra-LDFLAGS = - L /用户/ Brian1 /开发/的ffmpeg-的Andr​​oid / toolchain- Android的/ lib目录-Wl,-z,relro -Wl,-z,现在-pie--extra-库= -lm --extra-CXXFLAGS =
07-14 22:30:35.963:D / ffmpeg的(30354):libavutil 54 7.100 / 7.100 54
07-14 22:30:35.963:D / ffmpeg的(30354):libav codeC 56. 1.100 / 1.100 56
07-14 22:30:35.963:D / ffmpeg的(30354):56了libavformat 4.101 / 56 4.101
07-14 22:30:35.963:D / ffmpeg的(30354):libavdevice 56 0.100 / 0.100 56
07-14 22:30:35.963:D / ffmpeg的(30354):libavfilter 5. 1.100 / 1.100 5
07-14 22:30:35.963:D / ffmpeg的(30354):libswscale 3. 0.100 / 0.100 3
07-14 22:30:35.963:D / ffmpeg的(30354):libswresample 1 1.100 / 1.100 1.
07-14 22:30:35.963:D / ffmpeg的(30354):libpostproc 53 0.100 / 0.100 53
07-14 22:30:35.963:D / ffmpeg的(30354):输入#0,MOV,MP4,M4A,3GP,3G2,MJ2,从'/data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc .MP4:
07-14 22:30:35.963:D / ffmpeg的(30354):元数据:
07-14 22:30:35.963:D / ffmpeg的(30354):major_brand:MP42
07-14 22:30:35.963:D / ffmpeg的(30354):minor_version:0
07-14 22:30:35.963:D / ffmpeg的(30354):compatible_brands:isommp42
07-14 22:30:35.963:D / ffmpeg的(30354):CREATION_TIME:2015年7月15日5点30分32秒
07-14 22:30:35.963:D / ffmpeg的(30354):时间:00:00:02.75,启动:0.000000,比特率:9315 KB /秒
07-14 22:30:35.963:D / ffmpeg的(30354):流#0:0(ENG):视频:H264(AVC1 / 0x31637661),YUV420P,960x720,10062 KB / s时,29.97,29.97 TBR,90K TBN,180K TBC(默认)
07-14 22:30:35.963:D / ffmpeg的(30354):元数据:
07-14 22:30:35.963:D / ffmpeg的(30354):旋转:90
07-14 22:30:35.963:D / ffmpeg的(30354):CREATION_TIME:2015年7月15日5点30分32秒
07-14 22:30:35.963:D / ffmpeg的(30354):handler_name:VideoHandle
07-14 22:30:35.963:D / ffmpeg的(30354):端数据:
07-14 22:30:35.963:D / ffmpeg的(30354):displaymatrix:旋转-90.00度
07-14 22:30:35.963:D / ffmpeg的(30354):流#0:1(ENG):音频:AAC(MP4A / 0x6134706D),48000赫兹,立体声,fltp,151 kb / s的(默认)
07-14 22:30:35.963:D / ffmpeg的(30354):元数据:
07-14 22:30:35.963:D / ffmpeg的(30354):CREATION_TIME:2015年7月15日5点30分32秒
07-14 22:30:35.963:D / ffmpeg的(30354):handler_name:SoundHandle
07-14 22:30:35.963:D / ffmpeg的(30354):libx264 @ 0xb6808800]使用SAR = 4/3
07-14 22:30:35.963:D / ffmpeg的(30354):libx264 @ 0xb6808800]使用CPU功能:无!
07-14 22:30:35.963:D / ffmpeg的(30354):libx264 @ 0xb6808800]配置文件约束基线,3.1级
07-14 22:30:35.963:D / ffmpeg的(30354):ADTS @ 0xb685b000]使用AVStream codec.time_base作为时基提示复用器是pcated德$ P $。设置AVStream.time_base代替。
07-14 22:30:35.963:D / ffmpeg的(30354):输出#0,MPEGTS,以'/data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts:
07-14 22:30:35.963:D / ffmpeg的(30354):元数据:
07-14 22:30:35.963:D / ffmpeg的(30354):major_brand:MP42
07-14 22:30:35.963:D / ffmpeg的(30354):minor_version:0
07-14 22:30:35.963:D / ffmpeg的(30354):compatible_brands:isommp42
07-14 22:30:35.963:D / ffmpeg的(30354):EN codeR:Lavf56.4.101
07-14 22:30:35.963:D / ffmpeg的(30354):流#0:0(ENG):视频:H264(libx264),YUV420P,720x960 [SAR 4:3 DAR 1:1],Q = -1 --1,29.97,90K TBN,29.97 TBC(默认)
07-14 22:30:35.963:D / ffmpeg的(30354):元数据:
07-14 22:30:35.963:D / ffmpeg的(30354):handler_name:VideoHandle
07-14 22:30:35.963:D / ffmpeg的(30354):CREATION_TIME:2015年7月15日5点30分32秒
07-14 22:30:35.963:D / ffmpeg的(30354):旋转:0
07-14 22:30:35.963:D / ffmpeg的(30354):EN codeR:Lavc56.1.100 libx264
07-14 22:30:35.963:D / ffmpeg的(30354):流#0:1(ENG):音频:AAC(MP4A / 0x6134706D),48000赫兹,立体声,151 kb / s的(默认)
07-14 22:30:35.963:D / ffmpeg的(30354):元数据:
07-14 22:30:35.963:D / ffmpeg的(30354):CREATION_TIME:2015年7月15日5点30分32秒
07-14 22:30:35.963:D / ffmpeg的(30354):handler_name:SoundHandle
07-14 22:30:35.963:D / ffmpeg的(30354):流映射:
07-14 22:30:35.963:D / ffmpeg的(30354):流#0:0 - > #0:0(H264(本地) - GT; H264(libx264))
07-14 22:30:35.963:D / ffmpeg的(30354):流#0:1 - > #0:1(复印件)
07-14 22:30:35.963:D / ffmpeg的(30354):preSS [Q]停止,求助[?]
07-14 22:30:35.963:D / ffmpeg的(30354):帧= 17 FPS = 0.0 Q = 27.0尺寸= 0KB时间= 00:00:00.3​​6比特率= ​​0.0kbits /秒
07-14 22:30:35.963:D / ffmpeg的(30354):帧= 33 FPS = 32,Q = 27.0大小= 164KB时间= 00:00:01.15比特率= ​​1163.1kbits /秒
07-14 22:30:35.963:D / ffmpeg的(30354):帧= 46 FPS = 30,Q = 29.0大小= 213KB时间= 00:00:01.33 b


解决方案

您可以试试这个(需要照顾裁剪和裁员的)...

的ffmpeg -i input.file -s小480x480 -vf作物= 480:480,setdar = 1:1,setsar = 1:1 output.mp4

-s 将设置规模(视频画布区域)结果
作物= 480:480 将裁剪从中心。如果您具体的使用需要:作物= 480:480:POS-X:POS-Y 结果
setdar 将设置显示宽高比结果
setsar 将设置采样宽高比

结果:(屏幕通过抓住MP4剧照

I'm trying to convert an mp4 video with dimensions usually 960x720 into a sqaure 480:480 video but it comes out looking squished usually, the command is

"-y -i %s -vf crop=480:480,transpose=%d -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc %s";

Am I missing something, do I need to down scale first or something?

**EDIT adding full console output. The ffmpeg command is updated, but the goal still remains the same, take an arbitrary video and square crop it

07-14 22:30:32.813: D/ffmpeg(30354): -y -i /data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4 -vf scale=iw*sar:ih,transpose=1 -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc -aspect 1:1 /data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts
07-14 22:30:32.903: D/ffmpeg(30354): new time reamining 9283
07-14 22:30:32.913: D/FFmpeg(30354): Running publishing updates method
07-14 22:30:35.963: D/ffmpeg(30354): WARNING: linker: /data/data/com.myapp.app/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
07-14 22:30:35.963: D/ffmpeg(30354): ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
07-14 22:30:35.963: D/ffmpeg(30354):   built on Jun  3 2015 21:56:01 with gcc 4.8 (GCC)
07-14 22:30:35.963: D/ffmpeg(30354):   configuration: --target-os=linux --cross-prefix=/Users/Brian1/development/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/Users/Brian1/development/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-small --enable-libx264 --enable-pthreads --disable-muxers --enable-muxer=mpegts --enable-muxer=mp4 --disable-demuxers --enable-demuxer=mpegts --enable-demuxer=mov --enable-demuxer=mpeg --enable-demuxer=mp4 --disable-debug --disable-decoders --enable-decoder=h264 --enable-decoder=aac --disable-devices --disable-encoders --enable-encoder=libx264 --disable-network --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/Users/Brian1/development/ffmpeg-android/ffmpeg-pkg-config --prefix=/Users/Brian1/development/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/Users/Brian1/development/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/Users/Brian1/development/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs=-lm --extra-cxxflags=
07-14 22:30:35.963: D/ffmpeg(30354):   libavutil      54.  7.100 / 54.  7.100
07-14 22:30:35.963: D/ffmpeg(30354):   libavcodec     56.  1.100 / 56.  1.100
07-14 22:30:35.963: D/ffmpeg(30354):   libavformat    56.  4.101 / 56.  4.101
07-14 22:30:35.963: D/ffmpeg(30354):   libavdevice    56.  0.100 / 56.  0.100
07-14 22:30:35.963: D/ffmpeg(30354):   libavfilter     5.  1.100 /  5.  1.100
07-14 22:30:35.963: D/ffmpeg(30354):   libswscale      3.  0.100 /  3.  0.100
07-14 22:30:35.963: D/ffmpeg(30354):   libswresample   1.  1.100 /  1.  1.100
07-14 22:30:35.963: D/ffmpeg(30354):   libpostproc    53.  0.100 / 53.  0.100
07-14 22:30:35.963: D/ffmpeg(30354): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4':
07-14 22:30:35.963: D/ffmpeg(30354):   Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):     major_brand     : mp42
07-14 22:30:35.963: D/ffmpeg(30354):     minor_version   : 0
07-14 22:30:35.963: D/ffmpeg(30354):     compatible_brands: isommp42
07-14 22:30:35.963: D/ffmpeg(30354):     creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):   Duration: 00:00:02.75, start: 0.000000, bitrate: 9315 kb/s
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p, 960x720, 10062 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       rotate          : 90
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : VideoHandle
07-14 22:30:35.963: D/ffmpeg(30354):     Side data:
07-14 22:30:35.963: D/ffmpeg(30354):       displaymatrix: rotation of -90.00 degrees
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 151 kb/s (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : SoundHandle
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] using SAR=4/3
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] using cpu capabilities: none!
07-14 22:30:35.963: D/ffmpeg(30354): [libx264 @ 0xb6808800] profile Constrained Baseline, level 3.1
07-14 22:30:35.963: D/ffmpeg(30354): [adts @ 0xb685b000] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
07-14 22:30:35.963: D/ffmpeg(30354): Output #0, mpegts, to '/data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts':
07-14 22:30:35.963: D/ffmpeg(30354):   Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):     major_brand     : mp42
07-14 22:30:35.963: D/ffmpeg(30354):     minor_version   : 0
07-14 22:30:35.963: D/ffmpeg(30354):     compatible_brands: isommp42
07-14 22:30:35.963: D/ffmpeg(30354):     encoder         : Lavf56.4.101
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:0(eng): Video: h264 (libx264), yuv420p, 720x960 [SAR 4:3 DAR 1:1], q=-1--1, 29.97 fps, 90k tbn, 29.97 tbc (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : VideoHandle
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       rotate          : 0
07-14 22:30:35.963: D/ffmpeg(30354):       encoder         : Lavc56.1.100 libx264
07-14 22:30:35.963: D/ffmpeg(30354):     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, 151 kb/s (default)
07-14 22:30:35.963: D/ffmpeg(30354):     Metadata:
07-14 22:30:35.963: D/ffmpeg(30354):       creation_time   : 2015-07-15 05:30:32
07-14 22:30:35.963: D/ffmpeg(30354):       handler_name    : SoundHandle
07-14 22:30:35.963: D/ffmpeg(30354): Stream mapping:
07-14 22:30:35.963: D/ffmpeg(30354):   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
07-14 22:30:35.963: D/ffmpeg(30354):   Stream #0:1 -> #0:1 (copy)
07-14 22:30:35.963: D/ffmpeg(30354): Press [q] to stop, [?] for help
07-14 22:30:35.963: D/ffmpeg(30354): frame=   17 fps=0.0 q=27.0 size=       0kB time=00:00:00.36 bitrate=   0.0kbits/s    
07-14 22:30:35.963: D/ffmpeg(30354): frame=   33 fps= 32 q=27.0 size=     164kB time=00:00:01.15 bitrate=1163.1kbits/s    
07-14 22:30:35.963: D/ffmpeg(30354): frame=   46 fps= 30 q=29.0 size=     213kB time=00:00:01.33 b
解决方案

You can try this (takes care of cropping AND downsizing)...

ffmpeg -i input.file -s 480x480 -vf crop=480:480,setdar=1:1,setsar=1:1 output.mp4

-s will set scale (video canvas area)
crop=480:480 will crop from centre.. if you need from specific use: crop=480:480:pos-X:pos-Y
setdar will set Display Aspect Ratio
setsar will set Sample Aspect Ratio

Results: (screen grabbed MP4 stills via MPC-Home Cinema)

这篇关于FFMPEG命令作物和转自带的视频在质量差缩小出来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-27 00:12