1、安装 java sdk
https://www.oracle.com/java/technologies/downloads/#java8-windows

2、服务端安装 gitblit:
2.1 http://gitblit.github.io/gitblit/ 下载最新版本
2.2 修改配置 data\defaults.properties,其中目录配置时注意用正斜杠!

  • git.repositoriesFolder = C:/GitRepository
  • server.httpsPort = 8821
  • server.httpBindInterface = 0.0.0.0
    // - server.certificateAlias = domain.com
  • git.sshPort = 8822

2.3 修改服务配置 installService.cmd

  • SET ARCH=amd64
  • SET CD=D:\tools\gitblit-1.9.1
  • 清空启动参数:--StartParams="" ^

2.4 以管理员身份运行 installService.cmd 安装服务,并到服务中启动服务。

3、windows 客户端:

git clone ssh://[email protected]:8822/proj.git

如果出现证书问题报错 SSL certificate problem: self signed certificate in certificate chain,可以设置不认证:

git config --global http.sslVerify false 

如果 ssh 错误提示 no matching host key type found. Their offer: ssh-rsa,是因为 .ssh/known_hosts 下面没有相关信息,使用命令行执行一次点接受即可:

ssh [email protected] -p 8822

如果还不行,则 C:\Users\用户名.ssh\ 目录下增加文件:config

Host office.belltrip.net
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa

恢复本地被删除的文件
git reset --hard HEAD

修改忽略列表,改完后:

git rm -r --cached . 
git add .
git commit -am "Remove ignored files"
git pull origin master
git push origin master

查看所有配置:git config -l

分支:

git checkout -b branch    #创建分支
git checkout branch    #切换分支
git merge master    #将master合并到当前分支

合并时忽略部分文件:
建立 .gitattributes 文件,写入需要忽略的文件列表,支持通配符,跟 .gitignore 一样,只是每一行后面可以加“ merge=ours",表示 出現衝突時永遠使用我的版本,“ merge=theirs" 使用别人版本

git config --global merge.ours.driver true    #开启功能

剪切视频:
ffmpeg -ss 00:00:00 -t 00:09:23 -i fuli.mp4 -vcodec copy -acodec copy output.mp4

  • -ss 指定从什么时间开始
  • -t 指定需要截取多长时间,如果不指定,则剪切到最后
  • -i 指定输入文件

合并视频,list.txt 中,每一行一个文件,格式:file './split.mp4'
ffmpeg -f concat -i list.txt -c copy concat.mp4
如果不是MP4要重新编码:ffmpeg -f concat -i list.txt -y -c:v libx264 -strict -2 concat.mp4
另一种方式:ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

旋转视频,2种方式:
1、重新编码,很耗时,但效果最好(很多视频还能优化编码后在保留效果的前提下使文件变得更小)。其中transspose:0-逆时针旋转90度,垂直翻转;1-顺时针90度;2-逆时针旋转90度;3-顺时针旋转90度,垂直翻转。
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
2、仅仅更改元数据中的旋转设置
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
如果希望保留源视频的日期、摄像机等详细信息,则:
ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4

将文件当做直播送至live
ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName

将直播媒体保存至本地文件
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

将其中一个直播流,视频改用h264压缩,音频不变,送至另外一个直播服务流
ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv rtmp://server/live/h264Stream

将其中一个直播流,视频改用h264压缩,音频改用faac压缩,送至另外一个直播服务流
ffmpeg -i rtmp://server/live/originalStream -c:a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow -vpre baseline -f flv rtmp://server/live/h264Stream

将其中一个直播流,视频不变,音频改用faac压缩,送至另外一个直播服务流
ffmpeg -i rtmp://server/live/originalStream -acodec libfaac -ar 44100 -ab 48k -vcodec copy -f flv rtmp://server/live/h264_AAC_Stream

将一个高清流,复制为几个不同视频清晰度的流重新发布,其中音频不变
ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baseline rtmp://server/live/baseline_500k -acodec copy -vcodec x264lib -s 480×272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec copy -vcodec x264lib -s 320×200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k

功能一样,只是采用-x264opts选项
ffmpeg -re -i rtmp://server/live/high_FMLE_stream -c:a copy -c:v x264lib -s 640×360 -x264opts bitrate=500:profile=baseline:preset=slow rtmp://server/live/baseline_500k -c:a copy -c:v x264lib -s 480×272 -x264opts bitrate=300:profile=baseline:preset=slow rtmp://server/live/baseline_300k -c:a copy -c:v x264lib -s 320×200 -x264opts bitrate=150:profile=baseline:preset=slow rtmp://server/live/baseline_150k -c:a libfaac -vn -b:a 48k rtmp://server/live/audio_only_AAC_48k

将当前摄像头及音频通过DSSHOW采集,视频h264、音频faac压缩后发布
ffmpeg -r 25 -f dshow -s 640×480 -i video="video source name":audio="audio source name" -vcodec libx264 -b 600k -vpre slow -acodec libfaac -ab 128k -f flv rtmp://server/application/stream_name

将一个JPG图片经过h264压缩循环输出为mp4视频
ffmpeg.exe -i INPUT.jpg -an -vcodec libx264 -coder 1 -flags +loop -cmp +chroma -subq 10 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -flags2 +dct8x8 -trellis 2 -partitions +parti8x8+parti4x4 -crf 24 -threads 0 -r 25 -g 25 -y OUTPUT.mp4

将普通流视频改用h264压缩,音频不变,送至高清流服务(新版本FMS live=1)
ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv "rtmp://server/live/h264Stream live=1"

把文件转成m3u8 方法(原样拷贝)
ffmpeg -re -i /root/video.mpg -codec copy -map 0 -f segment -segment_list playlist.m3u8 -segment_list_flags +live -segment_time 10 out%03d.ts

play_url
读取rtmp流转成m3u8
ffmpeg -rw_timeout 8000000 -v verbose -i rtmp://*.com/ -force_key_frames "expr:gte(t,n_forced1)" -c:v libx264 -c:a aac -ac 1 -strict -2 -crf 20 -profile:v main -maxrate 2500k -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 5 -start_number 1 -f segment -segment_list D:\rev\playlist.m3u8 -segment_list_flags +live -segment_time 5 D:\rev\out%04d.ts

将视频转码为mp4
ffmpeg -i 本地视频地址 -y -c:v libx264 -strict -2 转换视频.mp4

将mp4格式转换为ts格式
ffmpeg -y -i 本地视频.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 转换视频.ts

将ts文件进行切片
ffmpeg -i 本地视频.ts -c copy -map 0 -f segment -segment_list 视频索引.m3u8 -segment_time 5 前缀-%03d.ts

截屏保存为图片(ss后面为时间,秒为单位,0为第一侦):
ffmpeg -i C:\Video\test.mp4 -ss 0 -f image2 C\:Image\out.jpg