如何使用ffmpeg在横向模式下制作我的视频

我有四个视频聊天。我设法以某种方式将视频切成片断,存储在数组中,然后堆叠起来,最后合并了下面youtube链接中的视频。我在纵向视图中使用的尺寸为640 * 480。但是我需要在景观中展示它们。向我提出任何想法。

风景视图: https://youtu.be/u8tmL2-CdK0 纵向视图: https://youtu.be/lO-Q3I9X8OA

这些是我的投入

Input #0,matroska,webm,from 'PA473fbf06ed1f952f95c88b9cf22ed0ba_pre.mkv': Metadata: encoder : GStreamer matroskamux version 1.8.1.1 creation_time : 2019-11-05T06:08:19.000000Z Duration: 00:01:05.50,start: 63.041000,bitrate: 30 kb/s Stream #0:0(eng): Video: h264 (Baseline),yuvj420p(pc,progressive),360x480,SAR 1:1 DAR 3:4,15 tbr,1k tbn,2k tbc (default) Metadata: title : Video Input #1,from 'PA183db0ed986039de3197092103a411eb_pre.mkv': Metadata: encoder : GStreamer matroskamux version 1.8.1.1 creation_time : 2019-11-05T06:07:20.000000Z Duration: 00:03:15.14,start: 4.062000,bitrate: 172 kb/s Stream #1:0(eng): Video: h264 (Baseline),15 fps,2k tbc (default) Metadata: title : Video Input #2,from 'PA62a810038cbcc00be21fac43e98f5ee1_pre.mkv': Metadata: encoder : GStreamer matroskamux version 1.8.1.1 creation_time : 2019-11-05T06:07:45.000000Z Duration: 00:02:21.71,start: 28.803000,bitrate: 92 kb/s Stream #2:0(eng): Video: h264 (Baseline),2k tbc (default) Metadata: title : Video Input #3,from 'PA8fa44ff1ba37ee510a045198bca6f04a_pre.mkv': Metadata: encoder : GStreamer matroskamux version 1.8.1.1 creation_time : 2019-11-05T06:07:48.000000Z Duration: 00:01:50.69,start: 32.318000,bitrate: 28 kb/s Stream #3:0(eng): Video: h264 (Baseline),2k tbc (default) Metadata: title : Video

首先,我将所有视频分辨率更改为640:480,因为每个视频可能具有不同的分辨率(概率)。所以我要设定一个固定的分辨率。

ffmpeg -i PA8fa44ff1ba37ee510a045198bca6f04a_pre.mkv -vf scale=640:480 PA8fa44ff1ba37ee510a045198bca6f04a.mkv -hide_banner Input #0,from PA8fa44ff1ba37ee510a045198bca6f04a_pre.mkv': Metadata: encoder : GStreamer matroskamux version 1.8.1.1 creation_time : 2019-11-05T06:07:48.000000Z Duration: 00:01:50.69,bitrate: 28 kb/s Stream #0:0(eng): Video: h264 (Baseline),2k tbc (default) Metadata: title : Video Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Press [q] to stop,[?] for help [swscaler @ 0000021d72eb3f80] deprecated pixel format used,make sure you did set range correctly [libx264 @ 0000021d72b33b40] using SAR=9/16 [libx264 @ 0000021d72b33b40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0000021d72b33b40] profile High,level 2.2,4:2:0,8-bit [libx264 @ 0000021d72b33b40] 264 - core 158 r2984 3759fcb - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=15 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0,to 'PA8fa44ff1ba37ee510a045198bca6f04a.mkv': Metadata: encoder : Lavf58.32.104 Stream #0:0(eng): Video: h264 (libx264) (H264 / 0x34363248),yuvj420p(pc),640x480 [SAR 9:16 DAR 3:4],q=-1--1,15 tbc (default) Metadata: title : Video encoder : Lavc58.56.101 libx264

两个视频合并命令

ffmpeg -i ddb97d85-fc21-4fb4-8062-ca2084a48aeb.mkv -i a8665a5f-fb5e-44cb-a072-070fbe07a14f.mkv -filter_complex "[0:v][1:v]hstack" 1572934056.mkv

三个视频合并命令

ffmpeg -i 16f90447-c8b6-4077-b3b6-4fb2c07e19b5.mkv -i ef501109-0ee9-4924-8de1-65eb796a4a78.mkv -i 0b284aa6-4175-472c-aaf6-837412f97f32.mkv -filter_complex "[1:v]scale=320:-1[left]; [2:v]scale=320:-1[right]; [left][right]hstack[bottom]; [0:v][bottom]vstack" 1572934058.mkv

concat命令

ffmpeg -i 1572934031.mkv -i 1572934056.mkv -i 1572934058.mkv -i 1572934089.mkv -i 1572934155.mkv -i 1572934169.mkv -i 1572934198.mkv -filter_complex "[0]scale=640:480:force_original_aspect_ratio=decrease,pad=640:480:(ow-iw)/2:(oh-ih)/2,fps=fps=30,setsar=1[0v];[1]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[1v];[2]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[2v];[3]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[3v];[4]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[4v];[5]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[5v];[6]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[6v];[0v][1v][2v][3v][4v][5v][6v]concat=n=7:v=1:a=0[v]" -map "[v]" 4c21f002fa76b148c00cc6fbceaa57ee.mp4

wuzhaohai000 回答:如何使用ffmpeg在横向模式下制作我的视频

无需预处理。一站式完成所有操作。假设所需的输出尺寸为1280x960:

ffmpeg \
-i left-1.mkv -i right-1.mkv \
-i topleft-2.mkv -i topright-2.mkv -i bottom-2.mkv \
-filter_complex \
"[0]scale=640:480:force_original_aspect_ratio=decrease,pad=640:960:(ow-iw)/2:(oh-ih)/2,setsar=1[left1];
 [1]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[right1];
 [left1][right1]hstack=inputs=2[set1];
 [2]scale=640:480:force_original_aspect_ratio=decrease,pad=640:480:(ow-iw)/2:(oh-ih)/2,setsar=1[topleft2];
 [3]scale=640:480:force_original_aspect_ratio=decrease,setsar=1[topright2];
 [4]scale=640:480:force_original_aspect_ratio=decrease,pad=1280:480:(ow-iw)/2:(oh-ih)/2,setsar=1[bottom2];
 [topleft2][topright2][bottom2]xstack=inputs=3:layout=0_0|w0_0|0_h0[set2];
 [set1][set2]concat=n=2:v=1:a=0[v]" \
-map "[v]" output.mp4
本文链接:https://www.f2er.com/3153431.html

大家都在问