Hunter的大杂烩 技术学习笔记

2024-07-23

windows cmd命令行下批量变更文件名

Filed under: 技术话题 — hunter @ 11:36 pm

批处理中变量含义参考: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

2024-07-15

常用DOS批处理

Filed under: 技术话题 — hunter @ 11:28 pm

setlocal enabledelaydexpansion

delayedexpansion 说明见:https://blog.csdn.net/rhcgrys/article/details/124283862

  1. 批量for循环转码文件(或修改文件后缀)

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)

ffmpeg硬编码字幕中遇到GBK字符解决方法

Filed under: 技术话题 — hunter @ 11:14 pm

使用 -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