小编Ed9*_*999的帖子

如何修复 FFmpeg 中的“PES 数据包大小不匹配”错误?

如何修复 FFmpeg 中的错误PES 数据包大小不匹配-

我要回答我自己的问题,因为“ PES 数据包大小不匹配”一词经常出现在与 ffmpeg 相关的帖子中,但我没有找到令人满意的解决方案。

它通常出现在涉及 .TS 传输流文件的问题中:要么与连接此类文件有关,要么与重新混合它们(从 .ts 到 .mp4)有关。在 ffmpeg 的输出中的某个位置,致命的短语“数据包大小不匹配”将突然开始重复。

解决方案是将它们连接为 .ts 文件(即以其原始格式),然后获取输出 .ts 文件,将其拆分为视频文件 (.ts) 和音频文件 (.ts),然后重新混合它们(以.ts 或 .mp4)使用“itsoffset”选项。即使使用流复制,输出为 .mp4 通常也会比保留 .ts 格式提供更差的图像质量。

以下代码执行此操作,输出 .mp4 视频或 .ts 视频(将代码复制到简单的 .bat批处理文件中,然后运行该文件) -

:: Program Location
SET ffmpeg="C:\Program Files\FFmpeg\ffmpeg.exe" -hide_banner  


::  STEP 1 -

::  Create File List
IF EXIST mylist.txt DEL mylist.txt
FOR %%i IN (*.ts) DO ECHO file '%%i'>> mylist.txt

::  Concatenate …
Run Code Online (Sandbox Code Playgroud)

ffmpeg

7
推荐指数
1
解决办法
2万
查看次数

批处理文件中的Powershell-如何转义元字符?

在Windows 7上运行时,将文件复制到外部磁盘时,在常规文件备份期间,我使用Powershell v2(从批处理文件运行)在复制文件上重新创建原始文件的所有时间戳。

以下代码在大多数情况下都能成功运行,但并非总是如此:-

SET file=%1
SET dest=E:\

COPY /V /Y  %file% "%dest%"

SetLocal EnableDelayedExpansion
FOR /F "usebackq delims==" %%A IN ('%file%') DO (
      SET fpath=%%~dpA
      SET fname=%%~nxA
)

PowerShell.exe (Get-Item \"%dest%\%fname%\").CreationTime=$(Get-Item \"%fpath%%fname%\" ^| Select-Object -ExpandProperty CreationTime ^| Get-Date -f \"MM-dd-yyyy HH:mm:ss\")
Run Code Online (Sandbox Code Playgroud)

当我将源文件拖放到批处理文件上时,以上代码将复制文件,然后将复制(目标)文件上的创建日期/时间设置为源文件的创建日期/时间。

但是在某些情况下,代码会失败。如果文件名包含“毒药”字符,例如(例如)方括号,则会出现错误“ 在此对象上找不到属性'CreationTime' ”。文件名的解析显然在“毒药”字符处失败。

代码中并没有给出具有符号错误,如

我已经尝试了使用单引号和双引号转义Powershell命令的各种变体,但是没有成功。请有人告诉我如何转义Powershell对象所针对的那些字符。

这只是更长的批处理例程的一小部分,我依靠它执行常规的系统备份。我没有选择切换到.ps1文件的选项,因此我需要一个在批处理文件而不是.ps1文件中工作的解决方案。

感谢您的所有建议。

附录:我通过采用mklement0提供的一个建议找到了解决方案。通过将以下命令替换为原始Powershell命令,克服了方括号的问题-

PowerShell.exe (Get-Item -LiteralPath \"%dest%\%fname%\").CreationTime=$(Get-Item -LiteralPath \"%fpath%%fname%\" ^| Select-Object -ExpandProperty CreationTime ^| Get-Date -f \"MM-dd-yyyy HH:mm:ss\")
Run Code Online (Sandbox Code Playgroud)

为了将来参考,请注意(在 …

powershell batch-file parameter-passing quoting powershell-2.0

5
推荐指数
1
解决办法
484
查看次数