|
工具下载地址:https://videosmusic.lanzn.com/s/cmd
【GIF】单格式分辨率
ffmpeg -i "./mp4/1.mp4" -b 568k -r 20 -vf fps=20,scale=16:16:flags=lanczos,palettegen -y ./GIF/调色板.png
ffmpeg -i "./mp4/1.mp4" -i ./GIF/调色板.png -r 15 -lavfi "fps=15,scale=540:960:flags=lanczos[x];[x][1:v]paletteuse" -y 半成品.gif
【QLV转MP4】单格式
Qlv2Mp4er "纸画皮.qlv" temp.ts 纸画皮.mp4 输出信息
高级命令:
--[1Qsv2Flv]--同源文件输出视频
;[Qsv2Flv 测试.qsv 半成品.FLV]
--[1920 × 804]--同源文件输出视频
;[ffmpeg -hide_banner -y -i 半成品.FLV -s 1024x768 -c copy -max_muxing_queue_size 34500 -map 0 成品.mp4 -progress {输出信息}]
超级命令:
--[1920 × 1080]--
;[ffmpeg -hide_banner -y -i 半成品.FLV -to 5924.08 -c:v libx264 -s 1920x1080 -b:v 3000k -ss 0 -to 5924.08 -r 30 -c:a aac -ac 2 -ar 44100 -b:a 128k -filter_complex [0:v]scale='trunc(min(1920,1080*dar)/2)*2':'trunc(min(1920/dar,1080)/2)*2',setsar=1:1,pad=1920:1080:trunc((1920-iw)/2):trunc((1080-ih)/2):black -preset superfast -max_muxing_queue_size 34500 -map 0 成品.mp4 -progress {输出信息}]
【QSV转MP4】单格式
--[1280 × 720]--
;[ffmpeg -hide_banner -y -i 半成品.FLV -to 5924.08 -c:v libx264 -s 1280x720 -b:v 2500k -ss 0 -to 5924.08 -r 30 -c:a aac -ac 2 -ar 44100 -b:a 128k -filter_complex [0:v]scale='trunc(min(1280,720*dar)/2)*2':'trunc(min(1280/dar,720)/2)*2',setsar=1:1,pad=1280:720:trunc((1280-iw)/2):trunc((720-ih)/2):black -preset superfast -max_muxing_queue_size 34500 -map 0 成品.mp4 -progress {输出信息}]
【9比16】多格式
易语言开发音视频转换学术案例:
;第一步取帧数
;[ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 mp4/原视频.mp4]
获取结果:158474
易代码:获取结果:158474[编辑框]
;第二步解帧
;[ffmpeg -r 25 -i mp4/原视频.mp4 -qscale:v 1 -vframes 1 -s 1920x1080 -aspect 9:16 -vframes 158474 tmp/%d.png -y]
解出结果:158474
易代码:获取结果:-r 25[编辑框] -vframes 158474[编辑框] mp4/原视频.mp4[编辑框] -s 540x960[编辑框] -aspect 9:16[编辑框] tmp/%d.png[默认指定位置]
-qscale <数值> 以<数值>质量为基础的VBR,取值0.01-255,约小质量越好
-qmin <数值> 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31
-r 24 fps设置为24帧/秒(帧数16647 ÷ 694秒 = 23.98703170028818 四舍五入1秒 24帧 -r 24);
-s 设置输出文件的分辨率,wxh;
-vframes 设置获取的帧数
-aspect 设置比例
;第三步提取音频
;[ffmpeg -i mp4/原视频.mp4 -b:a 192k -ar 48000 -ac 2 -y -acodec libmp3lame -aq 0 mp3/1.mp3 -y]
候选:
;[ffmpeg -i mp4/原视频.mp4 -acodec copy -vn m4a/1.m4a -y]
;[ffmpeg -i mp4/原视频.mp4 -y -acodec libmp3lame -aq 0 mp3/1.mp3 -y]
-i 设定输入流
-y 对输出文件进行覆盖
-b:a 音频码率
-ar 设定采样率
-ac 设定声音的 Channel 数
-aq 设置音频质量(指定编码)
;第四步音视频合并
原视频:00:11:34:11分 × 60秒 + 34秒 = 694秒
原视频:00:11:34:帧数16647 ÷ 694秒 = 23.98703170028818 四舍五入1秒 24帧 -r 24
;[ffmpeg -threads 2 -y -r 25 -start_number 1 -i tmp/%d.png -i mp3/1.mp3 -absf aac_adtstoasc -vcodec libxvid -qscale 7 -dts_delta_threshold 1 video.mp4 -y]
候选:
;[ffmpeg -r 24 -start_number 1 -i tmp/%d.png -vf fps=24 video.mp4 -y]
;[ffmpeg -i video.mp4 -i ./m4a/1.m4a -vcodec libx264 -acodec libmp3lame 成品.mp4 -y]
;[ffmpeg -threads 2 -y -i video.mp4 -b:v 400k -s 540x960 -vcodec libx264 压缩处理.mp4 -y]
-start_number 1 起始帧号为从第一帧开始合并;
-vn 不处理视频
-vcodec 设定视频编解码器,如果用 copy 表示原始编解码数据必须被拷贝;
-acodec 设定声音编解码器,如果用 copy 表示原始编解码数据必须被拷贝;
-vf 视频过滤器
-absf aac_adtstoasc 将音频格式转为faac是因为在iphone上某些音频格式的视频无法播放,例如mp3. 但faac格式的音频的视频在iphone上可以播放
-b:v 输出文件的码率,一般500k左右即可,人眼看不到明显的闪烁,设置越低视频越小;
-threads 2 以两个线程进行运行,加快处理的速度;
【VR360】
官方示例:实现从ERP到立方体的转换:
ffmpeg -i .\mp4\1.mp4 -vf v360=e:c3x2:cubic:out_pad=0.01 1.mkv
解释一下参数的含义:
最基本的参数格式如下:
v360=input_format:output_format
其中input_format和output_format分别是原始投影格式和目标投影格式。
e: ERP 投影格式
c: 立方体投影格式
c3x2: c后面加3x2指的是输出立方体视频的排列方式。目前支持三种:3x2, 1x6, 6x1
如果对于输入输出中的格式还有额外的参数要求,使用如下格式:
v360=input_format:output_format:format_1:arg_name=value
这里format_1指某个你要具体设置的格式,在冒号后面用arg_name= value的格式加具体参数。
在这个官方示例中,对于立方体还有额外的参数设置: cubic:out_pad=0.01, 这个是指立方体每个面要向外padding的像素数量是边长的1%。具体实现方式还不清楚
v360支持的视频格式
Format argument Full name Notes
‘e’, ‘equirect’ Equirectangular
‘c3x2’, ‘c6x1’, ‘c1x6’ Cubemap with 3x2/6x1/1x6 layout 大量额外设置可选
‘eac’ Equi-Angular Cubemap
‘tsp’ Truncated square pyramid
4. 立方体(cubemap)额外参数设置
4.1 Padding
4.2 设置不同面输出顺序
使用参数out_forder设置六个用何种顺序排列。对于c3x2, 各个面按从左到右,从上到下排列:
举例:
ffmpeg -i .\mp4\1.mp4 -vf v360=e:c3x2:cubic:out_forder='rludfb' 2.mkv
这个命令是指立方体的六个面按right, left, up, down, front, back的顺序输出。这个也是默认顺序。
注意,如果输入的视频不是默认顺序,则需要用in_forder来声明输入的顺序。举例:
ffmpeg -i input.mkv -vf v360=c3x2:e:cubic:in_forder='rludfb' 2.mkv
4.3 分别设置每个面的旋转角度
使用参数in_frot和out_frot设置每个面的顺时针旋转角度。举例:
ffmpeg -i .\mp4\1.mp4 -vf v360=e:c3x2:cubic:out_frot='000012' 3.mkv
这个命令会将输出的第五个面旋转90度,第六个面旋转180度。
默认是’000000’, 使用0 1 2 3 代表0 90 180 270度的旋转
4.4 设置欧拉角旋转
使用参数yaw, pitch, roll 可以对输出的视频做指定的旋转。
举例:如果要将视角向右偏移90度,即yaw=90,可以使用如下命令:
ffmpeg -i .\mp4\1.mp4 -vf v360=e:c3x2:cubic:yaw=90 4.mkv
|
-
|