1 year ago

#361848

test-img

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

enter image description here

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

Accepted video resources