批处理中变量含义参考:https://blog.csdn.net/albertsh/article/details/102985590
call命令使用参考https://www.hxstrive.com/subject/windows_bat.htm?id=78
返回值处理参考:https://blog.csdn.net/linux__kernel/article/details/7055267
@echo off
setlocal enableDelayedExpansion
批处理中变量含义参考:https://blog.csdn.net/albertsh/article/details/102985590
call命令使用参考https://www.hxstrive.com/subject/windows_bat.htm?id=78
返回值处理参考:https://blog.csdn.net/linux__kernel/article/details/7055267
@echo off
setlocal enableDelayedExpansion
setlocal enabledelaydexpansion
delayedexpansion 说明见:https://blog.csdn.net/rhcgrys/article/details/124283862
for /f “delims=” %%a in (‘dir /b^|findstr /l “.avi .mp4 .mkv”‘) do (
if not exist “%%~na.mpeg” (
ffmpeg -i “%%~a” -c:v mpeg2_qsv -qscale 8 -c:a mp3 -vf subtitles=”filename=%%~na.srt:charenc=GBK” “%%~na.mpeg”
)
)
注:修改for命令,可同时处理多种视频文件转码mpeg
2. 获取所有系统服务详细信息,比如提取系统服务执行文件路径
@for /f “tokens=1,2 delims= ” %i in (‘sc query state^=all ^|findstr SERVICE_NAME’) do ( @sc qc %j | findstr BINARY_PATH_NAME >> svr.lst)
使用 -vf subtitle 过滤器时,遇到字幕中有GBK字符,出现错误信息:
Error decoding subtitles: Invalid data found when processing input
[srt @ 000002833affeb00] Invalid UTF-8 in decoded subtitles text; maybe missing -sub_charenc option
虽然还可以编码,但是视频中,有GBK字符的字幕统统没有显示,说明过滤器处理不了,直接丢弃了
按提示使用 -sub_charenc 选项,错误信息仍然存在,将编码指令改为
ffmpeg -i “40 Meets Molly Cule.mkv” -sub_charenc GBK -i “40 Meets Molly Cule.srt” -c:v mpeg2_qsv -qscale 8 -c:a mp3 -c:s mov_text “40 Meets Molly Cule.mpeg”
后,不出错,但是字幕完全无法显示
翻阅 subtitle 过滤器说明(https://ffmpeg.org//ffmpeg-filters.html#subtitles-1),发现有charenc参数,最终将编码指令改为:
ffmpeg -i “40 Meets Molly Cule.mkv” -c:v mpeg2_qsv -qscale 8 -c:a mp3 -vf subtitles=”filename=40 Meets Molly Cule.srt:charenc=GBK” “40 Meets Molly Cule.mpeg”
完成~
Powered by WordPress