如何用 you-get 一键修复竖屏视频旋转:搭配 FFmpeg transpose 的完整指南

发布时间:2026/8/30 11:46:12
如何用 you-get 一键修复竖屏视频旋转:搭配 FFmpeg transpose 的完整指南 如何用 you-get 一键修复竖屏视频旋转搭配 FFmpeg transpose 的完整指南【免费下载链接】you-get:arrow_double_down: Dumb downloader that scrapes the web项目地址: https://gitcode.com/GitHub_Trending/yo/you-get刚用 you-get 下载到手的竖屏视频一打开却是横的人像躺倒、脑袋歪在屏幕边上——先别急着在播放器里手动找旋转按钮。只要再配上 FFmpeg 的 transpose 视频滤镜一条命令就能把竖屏视频方向修回来30 秒搞定。先给答案一条命令纠正方向别往下看太久先抄这条命令。假设你下载的视频叫video.mp4显示方向是横躺的# -vf transpose1 表示顺时针旋转 90 度把视频转正 # -c:a copy 表示音频直接复制不重新编码不损失音质 ffmpeg -i video.mp4 -vf transpose1 -c:a copy video_fixed.mp4跑完打开video_fixed.mp4方向就正了。如果转完是倒着正的上下颠倒把transpose1换成transpose2再跑一次即可。 为什么是 ffmpeg 而不是 you-get 单独干活you-get 负责把视频从网上抓下来转方向这种像素级手术是 FFmpeg 的拿手好戏。两者分工合作才是你手里最顺手的组合——这其实就是 you-get 配合 FFmpeg 处理视频的官方思路。三分钟看懂旋转信息到底藏在哪很多新手会问这视频怎么就横过来了答案是大多数手机竖屏视频文件里存的画面本来就是横着的。手机拍摄时真正起作用的是写在元数据Metadata可以理解成贴在文件上的说明书里的旋转参数通常是90或270用来提醒播放器显示前请帮我转正。问题就出在这份说明书上网站转码时把旋转参数弄丢了播放器拿到说明书都没了只能按原始横画显示或者某些播放器直接忽略这个参数照样横着播。于是竖屏视频变横屏视频方向错误就这么出现了。想看自己视频的旋转参数吗用 FFprobe随 FFmpeg 一起安装的体检工具# 优先读新版侧边数据读不到再退回旧版 tags 里的 rotate 字段 ffprobe -v error -select_streams v:0 -show_entries stream_side_datarotation -of csvp0 video.mp4 ffprobe -v error -select_streams v:0 -show_entries stream_tagsrotate -of csvp0 video.mp4输出90或270就说明它确实被横着存了。⚠️ 还有一点要明白旋转不是改个数字就能完事。因为画面数据本身是横放的要让它物理上竖过来必须逐帧重新编码重新打包视频流这就是为什么要用到-vf transpose滤镜而不是简单改元数据。好消息是音频不用动-c:a copy直接复制快且无损。小结旋转参数在元数据里但修正方向要重编码视频流——这就是 transpose 存在的原因。动手前环境自检清单修方向需要 FFmpeg 就位。you-get 会自动检测系统里的 FFmpeg检测逻辑在 src/you_get/processor/ffmpeg.py 的get_usable_ffmpeg函数找不到 ffmpeg 还会尝试 avconv所以装好就能用。对照这个清单走一遍检查 FFmpeg 是否已安装ffmpeg -version # 能打印版本号就说明已就绪没有按系统装一条Ubuntu / Debiansudo apt install ffmpegmacOSbrew install ffmpegWindows从 FFmpeg 官网下载解压包把bin目录加进系统 PATH 环境变量重启终端后ffmpeg -version能出结果即成功确认 you-get 能找到它you-get 内部用has_ffmpeg_installed同在 src/you_get/processor/ffmpeg.py判断终端能跑ffmpeg -versionyou-get 就能找到无需额外配置。顺手验证一下 ffprobe读旋转参数要用ffprobe -version小结终端里ffmpeg、ffprobe都能出版本号后面所有操作就可以直接开干了。按场景挑命令不同情况用不同姿势对号入座即可。先记住 transpose 四个参数各转哪里来自 FFmpeg 官方定义参数效果常见用途transpose1顺时针转 90°元数据 rotate90 的首选transpose2逆时针转 90° 垂直翻转用 1 修完上下颠倒时的替代transpose3顺时针转 270°即逆时针 90°元数据 rotate270 的首选transpose0逆时针转 90° 垂直翻转用 3 修完上下颠倒时的替代场景 A下载时顺手修正you-get 本身不提供附加滤镜参数它的-o是输出目录别被网上一些旧教程误导所以最省事的一步到位是下载命令和转方向命令用串成一行下载完自动修# -n 即 --no-merge多段视频不合并单文件视频可省略 # -O 指定下载文件名方便后面引用 you-get -n -O video.mp4 https://你的视频链接 \ ffmpeg -i video.mp4 -vf transpose1 -c:a copy video_fixed.mp4顺带一提you-get 下载流式视频、合并分段时内部本来就靠调用 FFmpeg 完成见 src/you_get/processor/ffmpeg.py 的ffmpeg_download_stream函数所以下载、修方向全程都在 FFmpeg 生态里非常丝滑。场景 B手头已有下载好的文件最简单直接就是开头那条命令换一下文件名# 修完可以播放确认满意后把原文件留作备份或自行处理 ffmpeg -i 已下载的视频.mp4 -vf transpose1 -c:a copy 已下载的视频_fixed.mp4场景 C一堆文件批量修方向错误的不止一个循环跑就行#!/bin/bash # 对当前目录所有 .mp4 逐个转正transpose1 可按需替换 for f in *.mp4; do ffmpeg -i $f -vf transpose1 -c:a copy fixed_$f done小结新下载就串命令旧文件就单跑成堆就 for 循环——三种场景一条主线都是-vf transpose加-c:a copy。进阶自动识别旋转角度不想每次手动看 ffprobe 输出把读旋转值 → 自动选参数写成脚本一个文件一个文件喂给它就行#!/bin/bash # fix_rotate.sh读旋转值自动选 transpose 参数 f$1 r$(ffprobe -v error -select_streams v:0 -show_entries stream_side_datarotation -of csvp0 $f 2/dev/null) [ -z $r ] r$(ffprobe -v error -select_streams v:0 -show_entries stream_tagsrotate -of csvp0 $f) case $r in 90) t1 ;; # 顺时针 90 度 270) t3 ;; # 逆时针 90 度 *) echo 未检测到旋转参数跳过: $f; exit 0 ;; esac ffmpeg -i $f -vf transpose$t -c:a copy -crf 23 fixed_$f用法bash fix_rotate.sh 你的视频.mp4。you-get 源码里也有用 ffprobe 读媒体信息的现成写法可参考ffprobe_get_media_duration位于 src/you_get/processor/ffmpeg.py想把它扩成下载完自动检测自动修正的小工具照这个思路加几行就行。小结脚本只是把前面两步自动化了——先 ffprobe 问角度再 ffmpeg 按角度转。踩坑速查表症状大概率原因怎么救修完没声音命令里漏了音频参数或容器不兼容加上-c:a copy保持音频原样复制仍不行再试-c:a aac重编码音频提示找不到 FFmpegFFmpeg 没装或不在 PATH 里ffmpeg -version先自查Windows 记得配 PATH 并重启终端you-get 侧的检测逻辑见上文清单修完画质发虚、明显变小重编码默认码率偏低加-crf 23越小越清晰18~23 日常够用ffmpeg -i in.mp4 -vf transpose1 -crf 23 -c:a copy out.mp4转完还是歪的或上下颠倒transpose 参数选反了换另一半1改23改0ffprobe 读不到 rotate 值新版 FFmpeg 把旋转存进了侧边数据用stream_side_datarotation那条命令见自动识别小节小结90% 的坑都出在音频参数和 transpose 编号上对着表查一分钟就好。写在最后竖屏视频变横屏本质是旋转说明书丢了 画面物理横放而 you-get 搭配 FFmpeg 的组合正好两头都顾得上you-get 负责抓取下载内部流式下载、分段合并都靠 FFmpeg见 src/you_get/processor/transpose 滤镜负责把画面转正-c:a copy让音频零损失。 现在就可以动手了先跑ffmpeg -version确认环境再挑一个躺倒的视频试ffmpeg -i video.mp4 -vf transpose1 -c:a copy video_fixed.mp4——30 秒后它就该正过来了。【免费下载链接】you-get:arrow_double_down: Dumb downloader that scrapes the web项目地址: https://gitcode.com/GitHub_Trending/yo/you-get创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻