Skip to content

longyangxi/videoComposer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

videoComposer

Compose several videos into one based on node.js cd scripts node composer.js config/狗狗玩游戏.json

setup

  1. npm install
  2. brew install ffmpeg (linux系统可能是 apt-get install ffmpeg)
  3. npm install -g editly (https://github.com/mifi/editly)
  4. 这个库生成多样化的视频缩略图:https://github.com/transitive-bullshit/ffmpeg-generate-video-preview

verify

命令行输入ffmpeg和editly,有命令才算安装正确

test

node test.js

ffmpeg

缩放影片(scale=1280表示宽度缩放到1280,高度按对应比例, todo:mov作为源的不能预览,某个参数问题?)

ffmpeg -i ../medias/subscribe.mp4 -filter:v scale=1280:-1 -c:a copy ../medias/subscribe1.mp4

切割影片(从0秒开始,持续3秒, todo:mov作为源的不能预览,某个参数问题?)

ffmpeg -i Subscribe_green_screen.mov -ss 00:00:00 -t 00:00:03 -async 1 Subscribe_green_screen.mp4

连接几个影片

ffmpeg
-i ../medias/productVideos/1c30eafa589c165f8ba8f9148223f57a_sw.mp4
-i ../medias/subscribe1.mp4 -filter_complex
"[0:v][0:a][1:v][1:a] concat=n=2:v=1:a=1 [outv] [outa]"
-map "[outv]" -map "[outa]" out.mp4

将一个影片重复n遍(4表示重复5遍)

ffmpeg -stream_loop 4 -i parallel_way_background1.mp4 -c copy parallel_way_background_loop.mp4

注意输出影片是1280*720,注意替换掉对应的变量

注意/20这里表示模糊度,数字越小越模糊

ffmpeg -i ./medias/productVideos/e9796102db67287558c53a5ba7ac247e.mp4 -lavfi "[0:v]scale=1280:-1,boxblur=luma_radius=min(h,w)/20:luma_power=1:chroma_radius=min(cw,ch)/20:chroma_power=1[bg];[0:v]scale=-1:720[ov];[bg][ov]overlay=(W-w)/2:(H-h)/2,crop=w=1280:h=720" output1.mp4

给影片添加不断重复的背景音乐

ffmpeg -y -stream_loop -1 -i "音乐地址" -i "视频地址" -map 0:a:0 -map 1:v:0 -c:v copy -c:a aac -ac 2 -shortest out.mp4

左右拼接影片(google: ffmpeg multiple side by side)

ffmpeg
-i sourceVideos/6738264977980935430.mp4
-i sourceVideos/6749437723146341637.mp4
-filter_complex
"[0:v]pad=iw*2:ih[int];
[int][1:v]overlay=W/2:0[vid]"
-map "[vid]"
-c:v libx264 -crf 23
videoSplit.mp4

叠加影片(google: ffmpeg overlay)

注意:-t 87 表示将输出影片截为87秒的长度

注意:-stream_loop -1 表示循环无数遍,配合 -t 87 将影片输出截断为主影片长度,那么能保证较短的背景video可以无限循环播放

https://stackoverflow.com/questions/10918907/how-to-add-transparent-watermark-in-center-of-a-video-with-ffmpeg

ffmpeg
-stream_loop -1
-i parallel_way_background1.mp4 -i
../productVideos/6f914acc030099609ba658472c38445c.mp4
-filter_complex
"overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2"
-t 87
-codec:a copy videoOverlayBg.mp4

加水印(居中)

ffmpeg
-i background1.mp4 -i
logo.png -filter_complex
"overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2"
-codec:a copy videoWithMarkCenter.mp4

加水印(右下并留10像素的空白)

ffmpeg
-i background1.mp4
-i logo.png -filter_complex
"overlay=(main_w-overlay_w-10):(main_h-overlay_h-10)"
-codec:a copy videoWithMarkBr.mp4

green screen(第二个影片放上层,需要去掉绿色背景)

-map 0:a -c:a表示要保留第一个输入视频的声音

ffmpeg -y -i backgroundVideo -i greenScreenVideo
-filter_complex '[1:v]colorkey=0x00FF00:0.3:0.2[ckout];[0:v][ckout]overlay[out]'
-map '[out]' -map 0:a -c:a greenScreen.mp4

About

Compose several videos into one based on node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published