Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
merge_av_release
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
胡斌
2017-12-01 18:47:25 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
5801b50ed38ce74d4965de17d6fb883bec40a4e6
5801b50e
1 parent
41c55d92
add ReadMe.txt
隐藏空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
56 行增加
和
0 行删除
ReadMe.txt
ReadMe.txt
0 → 100644
查看文件 @
5801b50
merge_av
此应用程序读入3mang webrtc课堂录像信息文件,根据各音频视频文件的开始和结束时间,运行ffmpeg对音频文件进行切分,再与视频文件合成。对每段开始音频无视频对应部分,取下一段视频的第一帧图像重复。
各段音视频合成为ts文件后,再拼接。最后把拼接后的ts文件再重新转换时间戳。所有这些操作都是调用ffmpeg命令完成的,因此merge_av程序运行需要确保ffmpeg所在路径添加在系统执行路径环境变量里。
运行示例:
merge_av uid_284176605_20171127113703805.txt
其中uid_284176605_20171127113703805.txt内容如下:
0.000 284176605_20171127113703805.aac create
1.681 284176605_20171127113705486.webm create
1.682 284176605_20171127113705486.webm info width=320 height=240 rotation=0
24.933 284176605_20171127113705486.webm close
27.729 284176605_20171127113731534.webm create
27.730 284176605_20171127113731534.webm info width=320 height=240 rotation=0
859.989 284176605_20171127113731534.webm close
895.640 284176605_20171127115159445.webm create
895.641 284176605_20171127115159445.webm info width=320 height=240 rotation=0
961.164 284176605_20171127115159445.webm close
964.639 284176605_20171127115308444.webm create
964.640 284176605_20171127115308444.webm info width=320 height=240 rotation=0
2770.511 284176605_20171127115308444.webm close
2780.447 284176605_20171127113703805.aac close
merge_av读入上述内容,解析后依次执行如下命令,最终生成dest.ts文件,是合成后是音视频文件,(各临时文件缺省删除,可以添加-k 参数保留,如merge_av uid_284176605_20171127113703805.txt -k)
这些命令可以通过 "merge_av uid_284176605_20171127113703805.txt -p"输出查看(-p就是只打印命令,不执行) :
ffmpeg -y -i 284176605_20171127113703805.aac -ss 0.000 -t 1.681 -acodec copy 0_284176605_20171127113703805.aac
ffmpeg -y -i 284176605_20171127113705486.webm -vframes 1 -ss 0 -f mjpeg -an 284176605_20171127113705486.webm.jpg
ffmpeg -y -loop 1 -i 284176605_20171127113705486.webm.jpg -i 0_284176605_20171127113703805.aac -loop 0 -shortest -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 0.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 1.681 -t 23.252 -acodec copy 1_284176605_20171127113703805.aac
ffmpeg -y -i 1_284176605_20171127113703805.aac -i 284176605_20171127113705486.webm -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 1.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 24.933 -t 2.796 -acodec copy 2_284176605_20171127113703805.aac
ffmpeg -y -i 284176605_20171127113731534.webm -vframes 1 -ss 0 -f mjpeg -an 284176605_20171127113731534.webm.jpg
ffmpeg -y -loop 1 -i 284176605_20171127113731534.webm.jpg -i 2_284176605_20171127113703805.aac -loop 0 -shortest -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 2.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 27.729 -t 832.260 -acodec copy 3_284176605_20171127113703805.aac
ffmpeg -y -i 3_284176605_20171127113703805.aac -i 284176605_20171127113731534.webm -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 3.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 859.989 -t 35.651 -acodec copy 4_284176605_20171127113703805.aac
ffmpeg -y -i 284176605_20171127115159445.webm -vframes 1 -ss 0 -f mjpeg -an 284176605_20171127115159445.webm.jpg
ffmpeg -y -loop 1 -i 284176605_20171127115159445.webm.jpg -i 4_284176605_20171127113703805.aac -loop 0 -shortest -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 4.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 895.640 -t 65.524 -acodec copy 5_284176605_20171127113703805.aac
ffmpeg -y -i 5_284176605_20171127113703805.aac -i 284176605_20171127115159445.webm -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 5.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 961.164 -t 3.475 -acodec copy 6_284176605_20171127113703805.aac
ffmpeg -y -i 284176605_20171127115308444.webm -vframes 1 -ss 0 -f mjpeg -an 284176605_20171127115308444.webm.jpg
ffmpeg -y -loop 1 -i 284176605_20171127115308444.webm.jpg -i 6_284176605_20171127113703805.aac -loop 0 -shortest -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 6.ts
ffmpeg -y -i 284176605_20171127113703805.aac -ss 964.639 -t 1815.808 -acodec copy 7_284176605_20171127113703805.aac
ffmpeg -y -i 7_284176605_20171127113703805.aac -i 284176605_20171127115308444.webm -acodec copy -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20 7.ts
copy /B 0.ts + /B 1.ts + /B 2.ts + /B 3.ts + /B 4.ts + /B 5.ts + /B 6.ts + /B 7.ts m.ts ;windows
cat 0.ts 1.ts 2.ts 3.ts 4.ts 5.ts 6.ts 7.ts> m.ts ;linux
ffmpeg -y -i m.ts -acodec copy -vcodec copy dest.ts
调用ffmpeg时,视频编码参数是: -vcodec libx264 -level 3.1 -preset veryfast -g 40 -r 20
音频编码参数是: -acodec copy
如果要修改,windows下在merge_av.exe同目录下新建merge_av.cfg文本文件,第一行保存视频编码,第二行保存音频编码;linux 下,merge_av.cfg保存在HOME目录。
...
...
请
注册
或
登录
后发表评论