目 录CONTENT

文章目录

视频下载播放尺寸不对?

JIN
JIN
2025-11-18 / 0 评论 / 0 点赞 / 6 阅读 / 0 字
广告 广告

视频下载尺寸不对问题

问题:网盘里面就是正常尺寸,下载下来就多了上下俩条大黑边,右击视频属性发现“帧宽1910,帧高1080”
已上传的图片

原理: 你的下载视频不是标准 16:9,而是“近似 16:9”分辨率(1910×1080)

🔍 为什么 百度网盘看时正常?

因为百度网盘的在线播放器会:

自动拉伸到16:9显示
忽略一些非标准分辨率的小误差

所以看起来你以为是“真正的 16:9”。


🔍 为什么本地看就出现黑边?

Windows 自带播放器例如“电影和电视(Movies & TV)”不会拉伸,会严格按照像素:

  • 你的分辨率 1910×1080 不是 16:9
  • 它为了保持不变形 → 在外面加黑边补成 16:9 的画框

于是就出现:

⬛(黑边)
▶▶(你的视频)
⬛(黑边)

黑边不在视频里,是播放器帮你加的。

解决办法

方法①修正所有 MP4视频(再下一遍,有多余文件)

  1. 把下面代码复制到记事本
  2. 记事本重命名保存为: fix_sar.bat
  3. fix_sar.bat 放到需要处理的视频文件夹
  4. 双击运行
  5. 生成的输出文件会自动命名为:原文件名_fixed.mp4

fix_sar.bat 内容:

@echo off
echo ===========================================
echo   批量修复视频比例(SAR=1:1)
echo   作者:JINRC 专用脚本
echo ===========================================
echo.

for %%a in (*.mp4) do (
    echo 正在处理:%%a
    ffmpeg -i "%%a" -c copy -bsf:v "h264_metadata=sample_aspect_ratio=1/1" "%%~na_fixed.mp4"
    echo 完成:%%a
    echo ------------------------------
)

echo 所有视频处理完毕!
pause

方法②覆盖所有 MP4视频(覆盖删除,无多余文件)

✔ 功能

  • 自动修正比例(SAR=1:1)
  • 自动覆盖原文件
  • 不留下 _fixed.mp4
  • 安全,不会误删文件
@echo off
echo ===========================================
echo   批量修复视频比例(覆盖原文件)
echo   作者:JINRC 专用脚本
echo ===========================================
echo.

for %%a in (*.mp4) do (
    echo 正在修复:%%a

    rem 生成临时文件
    ffmpeg -i "%%a" -c copy -bsf:v "h264_metadata=sample_aspect_ratio=1/1" "%%~na_temp.mp4"

    rem 删除原文件
    del /f /q "%%a"

    rem 重命名为原文件名
    ren "%%~na_temp.mp4" "%%~nxa"

    echo 完成:%%a
    echo ------------------------------
)

echo 全部视频修复完毕!
pause

方法③自动判断 + 自动覆盖原文件(先判断,再覆盖删除,无多余文件)

✔ 功能

  • 自动读取每个视频的 SAR(sample aspect ratio)
  • 只有 SAR≠1:1 才进行修复
  • 自动覆盖原文件
  • 其他正常比例的视频不会被动
@echo off
echo ===========================================
echo   自动判断视频比例并修复(覆盖原文件)
echo   作者:JINRC 专用脚本
echo ===========================================
echo.

for %%a in (*.mp4) do (
    echo 正在检测:%%a

    rem 获取视频 SAR(sample aspect ratio)
    for /f "tokens=2 delims= " %%s in ('ffprobe -v error -select_streams v:0 -show_entries stream^=sample_aspect_ratio -of default^=nokey^=1:noprint_wrappers^=1 "%%a"') do (
        set sar=%%s
    )

    rem 延迟变量展开
    setlocal enabledelayedexpansion

    rem 如果取到的 SAR 是 "1:1",跳过处理
    if "!sar!"=="1:1" (
        echo 比例正常(SAR=1:1),跳过:%%a
        endlocal
        echo ------------------------------
        continue
    )

    rem 如果 SAR 非 1:1,进行修复
    echo SAR=!sar! 需要修复,开始处理:%%a
    ffmpeg -i "%%a" -c copy -bsf:v "h264_metadata=sample_aspect_ratio=1/1" "%%~na_temp.mp4"

    rem 删除原文件
    del /f /q "%%a"

    rem 将修复后的文件改名为原名
    ren "%%~na_temp.mp4" "%%~nxa"

    endlocal

    echo 已修复:%%a
    echo ------------------------------
)

echo.
echo 全部视频检测与修复完毕!
pause
0
广告 广告

评论区