android - FFMPEG command to crop and transpose video comes out zoomed in bad quality -


i'm trying convert mp4 video dimensions 960x720 sqaure 480:480 video comes out looking squished usually, 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 missing something, need down scale first or something?

**edit adding full console output. ffmpeg command updated, goal still remains same, take arbitrary video , 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. wasting memory , prevents security hardening. please fix. 07-14 22:30:35.963: d/ffmpeg(30354): ffmpeg version n2.4.2 copyright (c) 2000-2014 ffmpeg developers 07-14 22:30:35.963: d/ffmpeg(30354):   built on jun  3 2015 21:56:01 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, '/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 timebase hint muxer deprecated. set avstream.time_base instead. 07-14 22:30:35.963: d/ffmpeg(30354): output #0, mpegts, '/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] stop, [?] 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 (takes care of cropping , downsizing)...

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

-s set scale (video canvas area)
crop=480:480 crop centre.. if need specific use: crop=480:480:pos-x:pos-y
setdar set display aspect ratio
setsar set sample aspect ratio

results: (screen grabbed mp4 stills via mpc-home cinema)

enter image description here


Comments

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -