WEB-DL

FFmpeg/MP4Box/SubtitleEdit参数记录

一、FFmpeg
官方文档地址:https://trac.ffmpeg.org

1.无损转换

for %%a in ("*.ts") do ffmpeg -i "%%a" -c copy -bsf:a aac_adtstoasc -y "E:\%%~na.mp4"

2.打tags

ffmpeg -y -i "E:\EP01.mp4" -i "E:\EP01.chs.srt" -i "E:\EP01.cht.srt" -map 0 -map 1 -map 2 -c:v copy -c:a copy -c:s mov_text -metadata:s:v:0 title="测试输出视频名" -metadata:s:a:0 title="测试输出音轨名" -metadata:s:s:0 handler="简体中文" -metadata:s:s:0 language=chi  -metadata:s:s:1 handler="繁體中文" -metadata:s:s:1 language=chi -metadata encoding_tool="TestTset" -metadata title="测试输出文件名" -metadata copyright="" -metadata comment="" -movflags +faststart -y -bsf:a aac_adtstoasc F:\测试_EP01.mp4

以下所说视频、音频分别指video、audio,可能在中文的理解上存在一丢丢差别,因为大部分人的认知就是 “视频=图像+声音”
-map 0 :第1个输入文件全部轨道都引用
-map 1 :第2个输入文件全部轨道都引用
-map 0:a :第1个输入文件的全部音频轨道
-map 0:v:0 :第1个输入文件的第1个视频轨道
-metadata
-metadata:s:轨道类型:当前轨道类型序号(n-1)
v:视频 a:音频 s:字幕
-metadata:s:v:0 :指定1个视轨
-metadata:s:a:0 :指定1个音轨
-metadata:s:s:0 :指定1个字幕
language :轨道语言
title :轨道名字
handler :播放器里显示轨道名字,就是mediainfo显示的轨道title(这个地方我一开始想多了,用了handler_name,handler_title,title三个代码测试了一遍,结果只有title能输出结果,然而potplayer不正常显示"简体中文","繁體中文",暂时没测试多音轨,理论上讲多音轨也应该这样处理吧。),如果你用了handler,我觉得就不需要用title了。。。估计各位看客很难理解我这段话,当然,有需求的应该可以看懂。
copyright :输出版权信息
encoding_tool :输出Writing application信息
-movflags +faststart :流媒体播放兼容,看到一些英文教程里用了这个指令,说是可以兼容网页播放,我个人理解应该是针对流媒体的。

二、MP4Box
官方文档地址:https://gpac.wp.imt.fr/mp4box/mp4box-documentation

1.封装

mp4box -add "E:\TestVideo.mp4#trackID=1:delay=0:lang=zh:name=TestVideo.2019.WEB-DL.1080p.H264.AAC.2.0" -add "E:\TestVideo.mp4#trackID=2:delay=0:lang=zh:name=Mandarin" -add "E:\TestVideo.chs.srt#delay=0:txtflags=0xC0000000:lang=zh:name=简体中文" -add "E:\TestVideo.cht.srt#delay=0:lang=zh:name=繁體中文" -add "E:\TestVideo.eng.srt#delay=0:lang=en:name=English" -add "E:\TestVideo.ind.srt#delay=0:lang=id:name=Bahasa Indonesia" -add "E:\TestVideo.thai.srt#delay=0:lang=th:name=ไทย"  -itags name="TestVideo.2019.WEB-DL.1080p.H264.AAC.2.0":tool="***-Muxer <***>" -for-test -new "F:\TestVideo.2019.WEB-DL.1080p.H264.AAC.2.0.mp4"

2.轨道顺序变换
-set-track-id id1:id3

id1变成id3,比如写1:3意思就是原先1轨道变成编号为3的轨道。

-swap-track-id id1:id2

id1和id2互换轨道编号,比如1和2轨道互换就是1变成2,2变成1。

三、SubtitleEdit
官方文档地址:https://www.nikse.dk/subtitleedit/help

1.转换vtt/dfxp到srt

SubtitleEdit /convert *.vtt subrip

码字很辛苦,转载请注明来自非WEB-DL资源站《FFmpeg/MP4Box/SubtitleEdit参数记录》