1 year ago
#361848
hugger
FFMpeg crop a portrait (vertical) video square 1:1
SOLVED... It was a UI issue... Not an FFpeg issue.
I am new to FFMpeg. I am stuck on cropping a portrait video taken from a portrait device square.
I would like my video output to be 1080x1080.
First, I tried this.
FFmpegKit.execute(`-y -i ${media.path} -vf "crop=1080:1080:exact=1" ${path}`)
As I hoped, this worked for photos. (but strangely rotates the photo) - looking into that...
BUT, for videos it does not work. instead it turns the video landscape.
I then tried to add scale:
FFmpegKit.execute(`-y -i ${media.path} -vf "crop=1080:1080:exact=1, scale=1080:1080" ${path}`)
But this left me with the same result.
Here are the console logs for some more information:
LOG Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:///private/var/mobile/Containers/Data/Application/71E462FC-4824-41FE-B28D-57AF7B6078C3/tmp/ReactNative/329ACC6F-42B6-4B12-A289-889DADE1BC3A.mov':
LOG Metadata:
LOG major_brand :
LOG qt
LOG
LOG minor_version :
LOG 0
LOG
LOG compatible_brands:
LOG qt
LOG
LOG creation_time :
LOG 2022-04-01T03:41:12.000000Z
LOG
LOG Duration:
LOG 00:00:02.35
LOG , start:
LOG 0.000000
LOG , bitrate:
LOG 21200 kb/s
LOG
LOG Stream #0:0
LOG [0x1]
LOG (und)
LOG : Video: hevc (hvc1 / 0x31637668), yuv420p(tv, bt709), 1080x1920, 21140 kb/s
LOG ,
LOG 59.96 fps,
LOG 59.94 tbr,
LOG 600 tbn
LOG (default)
LOG
LOG Metadata:
LOG creation_time :
LOG 2022-04-01T03:41:13.000000Z
LOG
LOG handler_name :
LOG Core Media Video
LOG
LOG vendor_id :
LOG [0][0][0][0]
LOG
LOG encoder :
LOG HEVC
LOG
LOG Stream #0:1
LOG [0x2]
LOG (und)
LOG : Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 61 kb/s
LOG (default)
LOG
LOG Metadata:
LOG creation_time :
LOG 2022-04-01T03:41:13.000000Z
LOG
LOG handler_name :
LOG Core Media Audio
LOG
LOG vendor_id :
LOG [0][0][0][0]
LOG
LOG [hevc @ 0x118ce07d0] The "sub_text_format" option is deprecated: Deprecated, does nothing
LOG [aac @ 0x10d30e190] The "sub_text_format" option is deprecated: Deprecated, does nothing
LOG Stream mapping:
LOG Stream #0:0 -> #0:0
LOG (hevc (native) -> mpeg4 (native))
LOG
LOG Stream #0:1 -> #0:1
LOG (aac (native) -> aac (native))
LOG
LOG Press [q] to stop, [?] for help
LOG Output #0, mp4, to '/var/mobile/Containers/Data/Application/71E462FC-4824-41FE-B28D-57AF7B6078C3/Documents/after.mp4':
LOG Metadata:
LOG major_brand :
LOG qt
LOG
LOG minor_version :
LOG 0
LOG
LOG compatible_brands:
LOG qt
LOG
LOG encoder :
LOG Lavf59.10.100
LOG
LOG Stream #0:0
LOG (und)
LOG : Video: mpeg4 (mp4v / 0x7634706D), yuv420p(tv, bt709, progressive), 1080x1080, q=2-31, 10000 kb/s
LOG ,
LOG 59.94 fps,
LOG 60k tbn
LOG (default)
LOG
LOG Metadata:
LOG creation_time :
LOG 2022-04-01T03:41:13.000000Z
LOG
LOG handler_name :
LOG Core Media Video
LOG
LOG vendor_id :
LOG [0][0][0][0]
LOG
LOG encoder :
LOG Lavc59.15.102 mpeg4
LOG
LOG Side data:
LOG
LOG cpb:
LOG bitrate max/min/avg: 0/0/10000000 buffer size: 0
LOG vbv_delay: N/A
LOG
LOG Stream #0:1
LOG (und)
LOG : Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s
LOG (default)
LOG
LOG Metadata:
LOG creation_time :
LOG 2022-04-01T03:41:13.000000Z
LOG
LOG handler_name :
LOG Core Media Audio
LOG
LOG vendor_id :
LOG [0][0][0][0]
LOG
LOG encoder :
LOG Lavc59.15.102 aac
LOG
LOG frame= 1 fps=0.0 q=3.6 size= 0kB time=00:00:01.06 bitrate= 0.3kbits/s speed=9.23x
LOG frame= 47 fps=0.0 q=2.0 size= 768kB time=00:00:01.85 bitrate=3390.0kbits/s speed=3.01x
LOG frame= 95 fps= 81 q=2.2 size= 1792kB time=00:00:02.32 bitrate=6313.3kbits/s speed=1.99x
LOG frame= 129 fps= 77 q=2.5 size= 2560kB time=00:00:02.32 bitrate=9018.9kbits/s speed=1.39x
LOG frame= 139 fps= 78 q=2.6 Lsize= 2953kB time=00:00:02.38 bitrate=10124.6kbits/s speed=1.34x
LOG video:2929kB audio:20kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead:
LOG 0.136336%
LOG
LOG [aac @ 0x112820f50] Qavg: 113.412
LOG COMPLETED
LOG {}
This is the result, when i replace
-i {media}
with
-f lavfi -i smptebars=r=60000/1001:s=1080x1920:d=1
ALMOST but not 1:1...
I have not had any luck online trying to find a solution for this so I have decided to post on here.
I hope I can get some guidance here!
Cheers.
react-native
ffmpeg
fluent-ffmpeg
0 Answers
Your Answer