函数学习 有些事,记下来是不错的选择...

FFmpeg封装MP4批处理

简要说明关键参数

-map 0:v:0            选择第0个输入的视频轨道的第0轨
-map 1:v:0            选择第1个输入的视频轨道的第0轨
-map 1:v:1            选择第1个输入的视频轨道的第1轨
-map 0                选择第1个输入的全部轨道
-map 0:a              选择第1个输入的全部音频轨道
-movflags +faststart  为在线播放提供可能

常用轨道:
    v 视频
    a 音频
    s 字幕

ffmpeg会按照你的-map顺序来混流
::for循环中的参数分别是起始序号、步长、终止序号,左闭右闭
for /l %%i in (1,1,10) do (
echo %%i.mp4
)

输出结果 为1.mp4 2.mp4 3.mp4 ... 10.mp4

其实命令大同小异,按需修改即可。下面是我常用的几种情况:

直接封装

@echo off
for /l %%i in (1,1,62) do (
"C:\ffmpeg_win64.exe" -y -i "%%i.mp4" -i "C:\Posters\九州缥缈录.jpg" -map 0 -map 1 -c:v copy -c:a copy -c:v:1 copy -disposition:v:1 attached_pic -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="九州缥缈录(2019)" -metadata copyright="" -metadata comment="" -movflags +faststart -metadata:s:a:0 language=chi -metadata:s:a:0 handler_name="" -y MUX_%%i.mp4 && del "%%i.mp4"
)
pause

音视频分离

@echo off

for /l %%i in (1,1,62) do (
"C:\ffmpeg_win64.exe" -y -i "%%iv.mp4" -i "%%ia.mp4" -i "C:\异常生物见闻录.jpg" -map 0 -map 1 -map 2 -c:v copy -c:a copy -c:v:1 copy -disposition:v:1 attached_pic -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="异常生物见闻录(2019)" -metadata copyright="" -metadata comment="" -movflags +faststart -metadata:s:a:0 language=chi -metadata:s:a:0 handler_name="" -y MUX_%%i.mp4 && del "%%i.mp4"
)
pause

封装插入外部DDP音轨

@echo off

for /l %%i in (1,1,62) do (
"C:\ffmpeg_win64.exe" -y -i "%%i.mp4" -i "C:\Posters\大宋少年志.jpg" -i "%%i.eac3" -map 0:v -map 1 -map 2 -map 0:a -c:v copy -c:a copy -c:v:1 copy -disposition:v:1 attached_pic -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="大宋少年志(2019)" -metadata copyright="" -metadata comment="" -movflags +faststart -metadata:s:a:0 handler_name="DD+" -metadata:s:a:0 language=chi -metadata:s:a:1 handler_name="AAC" -metadata:s:a:1 language=chi -y MUX_%%i.mp4 && del "%%i.mp4" && del "%%i.eac3"
)
pause

封装外部简体字幕

@echo off

for /l %%i in (1,1,60) do (
"C:\ffmpeg_win64.exe" -y -i "%%i.mp4" -i "C:\Posters\宫.jpg" -i "%%i.srt" -map 0 -map 1 -map 2 -c:s mov_text -c:v copy -c:a copy -c:v:1 copy -disposition:v:1 attached_pic -metadata:s:s:0 handler_name="简中" -metadata:s:s:0 language=chi -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="宫(2011)" -metadata copyright="" -metadata comment="" -movflags +faststart -y -bsf:a aac_adtstoasc MUX_%%i.mp4 && del %%i.mp4
)
pause

封装外部简繁字幕

@echo off

for /l %%i in (1,1,52) do (
"C:\ffmpeg_win64.exe" -y -i "%%i.mp4" -i "C:\Posters\哦我的皇帝陛下.jpg" -i "简体\%%i.srt" -i "繁体\%%i.srt" -map 0 -map 1 -map 2 -map 3 -c:s mov_text -c:v copy -c:a copy -c:v:1 copy -disposition:v:1 attached_pic -metadata:s:s:0 handler_name="简中" -metadata:s:s:0 language=chi  -metadata:s:s:1 handler_name="繁中" -metadata:s:s:1 language=chi -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="哦!我的皇帝陛下(2018)" -metadata copyright="" -metadata comment="" -movflags +faststart -y -bsf:a aac_adtstoasc MUX_%%i.mp4
)
pause

国粤双语MP4混流单个MP4+字幕

@echo off

for /l %%i in (1,1,60) do (
"C:\ffmpeg_win64.exe" -y -i "%%i.mp4" -i "%%iyue.mp4" -i "C:\Posters\机动部队.jpg" -i "%%i.ass" -map 0:v -map 1:a -map 0:a -map 2 -map 3 -c:s mov_text -c:v copy -c:a copy -c:v:2 copy -disposition:v:1 attached_pic -metadata:s:s:0 handler_name="简中" -metadata:s:s:0 language=chi -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="机动部队(2019)" -metadata copyright="" -metadata comment="" -movflags +faststart -metadata:s:a:0 handler_name="Cantonese" -metadata:s:a:0 language=chi -metadata:s:a:1 handler_name="Mandarin" -metadata:s:a:1 language=chi -y -bsf:a aac_adtstoasc MUX_%%i.mp4
)
pause

国粤双语MP4混流单个MP4

@echo off

for /l %%i in (1,1,60) do (
"C:\ffmpeg_win64.exe" -y -i "%%i.mp4" -i "%%iyue.mp4" -i "C:\Posters\机动部队.jpg" -map 0:v -map 1:a -map 0:a -map 2 -c:v copy -c:a copy -c:v:2 copy -disposition:v:1 attached_pic   -metadata encoding_tool="MP4 Tags Editor @ nilaoda" -metadata title="机动部队(2019)" -metadata copyright="" -metadata comment="" -movflags +faststart -metadata:s:a:0 handler_name="Cantonese" -metadata:s:a:0 language=chi -metadata:s:a:1 handler_name="Mandarin" -metadata:s:a:1 language=chi -y -bsf:a aac_adtstoasc MUX_%%i.mp4
)
pause