news 2026/8/30 11:43:59

you-get 竖屏视频旋转修复:一键拉正歪斜的视频方向

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
you-get 竖屏视频旋转修复:一键拉正歪斜的视频方向

you-get 竖屏视频旋转修复:一键拉正歪斜的视频方向

【免费下载链接】you-get:arrow_double_down: Dumb downloader that scrapes the web项目地址: https://gitcode.com/GitHub_Trending/yo/you-get

手机拍的竖屏视频下回电脑上,人直接躺平了——画面横倒,怎么拖都歪着。这是典型的视频方向错误:方向信息丢了,播放器只能按原始帧展示。你不需要手动调播放器,you-get 搭配 FFmpeg 就能完成竖屏视频旋转修复,画面转正,声音和画质基本不损失。

一条命令快速上手 🔧

打开终端,对任意一个躺倒的视频文件运行下面这条命令:

ffmpeg -i lying.mp4 -vf transpose=1 -c:a copy fixed.mp4

-vf transpose=1把画面顺时针转 90°,-c:a copy让音频原样带过去、不重新压缩。命令跑完,打开fixed.mp4看一眼,方向正常就收工。

原理速览:旋转标签是怎么丢的

竖屏视频的底帧大多是横着存的,文件里带一个 90°/270° 的旋转标签(即元数据,相当于贴在文件上的"播放时请转正"便条),播放器靠它摆正画面。部分网站转码时把这张便条撕掉了,播放器只好按原始帧横着放。修复的本质就是本地补一次旋转。you-get 下载后由 FFmpeg 接管处理链,读流、合并的底层逻辑都在 src/you_get/processor/ffmpeg.py 第 240 行的ffmpeg_download_stream里。

三种场景的转正姿势 🎯

边下边修(推荐)

适用于刚发现某条竖屏视频要保存、想一步拿到方向正确的文件:

you-get "视频页面URL" ffmpeg -i 已下载的视频.mp4 -vf transpose=1 -c:a copy fixed.mp4

先让 you-get 下载,再对文件补转,两步都是本地命令,互不干扰。

给已下好的文件补救

适用于视频早已躺在本地、播放才发现歪了。先用 ffprobe 确认旋转值(ffprobe 是 FFmpeg 自带的文件信息查看工具):

ffprobe -v error -show_entries stream_tags=rotate -of default=noprint_wrappers=1:nokey=1 lying.mp4

输出90对应transpose=1,输出270对应transpose=2

ffmpeg -i lying.mp4 -vf transpose=2 -c:a copy fixed.mp4

transpose 参数速查:

取值效果
0顺时针 90° 再垂直翻转
1顺时针 90°
2逆时针 90°
3逆时针 90° 再垂直翻转

整批文件一次搞定

适用于下载目录里有一堆方向不对的文件,批量循环处理:

for f in *.mp4; do ffmpeg -i "$f" -vf transpose=1 -c:a copy "fixed_$f" done

想按真实角度分支,见下一节的自动检测脚本。

自动检测旋转标签 🤖

不想逐个用 ffprobe 肉眼核对的话,把读取和分支写成一个 bash 脚本:

#!/bin/bash # fix-rotate.sh 用法:bash fix-rotate.sh 视频文件 rotate=$(ffprobe -v error -show_entries stream_tags=rotate -of default=noprint_wrappers=1:nokey=1 "$1") if [ "$rotate" = "90" ]; then ffmpeg -i "$1" -vf transpose=1 -c:a copy "fixed_$1" elif [ "$rotate" = "270" ]; then ffmpeg -i "$1" -vf transpose=2 -c:a copy "fixed_$1" else echo "no rotate tag, skip $1" fi

stream_tags=rotate换成其他标签名,同一套分支结构就能复用到别的元数据字段上。

踩坑排查 ⚠️

  • 现象:转完的文件没有声音。原因:输出端漏了音频处理方式,音频被默认链路处理掉了。解法:命令里固定带上-c:a copy;you-get 合并视频分片时的同类做法见 src/you_get/processor/ffmpeg.py 第 261 行。
  • 现象:执行报错说找不到 ffmpeg,但明明装过。原因:安装目录不在 PATH 里,探测直接失败。解法:先跑ffmpeg -version确认能输出版本号,不行就重新安装;you-get 的版本探测逻辑在 src/you_get/processor/ffmpeg.py 第 19 行的get_usable_ffmpeg,装好后重启终端再试。
  • 现象:转完的画面比原来糊。原因:旋转必须重压视频流,默认编码档位在老片子上会掉质量。解法:加-crf 23(CRF 是 FFmpeg 的画质档位,数字越小越接近原片):
ffmpeg -i lying.mp4 -vf transpose=1 -crf 23 -c:a copy fixed.mp4

下载交给 you-get,转正交给 FFmpeg,一条-vf transpose让歪掉的竖屏视频回到正位。现在就去终端里转平你第一个躺倒的视频吧。

【免费下载链接】you-get:arrow_double_down: Dumb downloader that scrapes the web项目地址: https://gitcode.com/GitHub_Trending/yo/you-get

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 11:38:29

合规开源技术分享指南:从本地AI到OCR与API服务

抱歉,这个项目主题涉及网络访问规避类工具,属于技术内容安全规则中不允许覆盖的范围,我无法为你生成对应的 CSDN 技术博文。如果你需要一篇可发布的技术长文,可以换一个合规的开源项目方向,例如:本地 AI 模…

作者头像 李华
网站建设 2026/8/30 11:36:07

复盘2017腾讯校招笔试题:考点、陷阱与底层能力解析

“回望2017年腾讯校招开发工程师笔试试卷,很多考点至今仍是面试题库里的常客。如果你正在准备大厂研发岗,或者想看看当年那道经典笔试题到底在考什么底层能力,这份复盘值得认真看完。我也会结合那几年腾讯面试的技术侧重点,把每类…

作者头像 李华
网站建设 2026/8/30 11:36:03

STM32H7R7编译报错排查实战:从环境配置到链接脚本

前阵子帮朋友调一块 STM32H7R7 的板子,工程是从 GitHub 拉下来的,作者用的 IAR,我本地装的是 Keil,一编译满屏报错。第一眼看到那个错误列表,我还以为是代码写得有问题,后来才发现,十个错误里有…

作者头像 李华
网站建设 2026/8/30 11:33:33

VLA时间建模:从固定窗口到流式状态,解锁实时控制

在机器人策略学习里,最容易被低估的问题,很可能不是模型容量,而是时间。做 VLA(Vision-Language-Action Model,视觉-语言-动作模型)的人,基本都面对过同一个落差:演示数据里时间信息…

作者头像 李华
网站建设 2026/8/30 11:33:20

STM32CubeIDE与CubeProgrammer协同调试全攻略

1. 从两个工具的分工说起:为什么需要协同调试先说个实际场景。很多人在用STM32CubeIDE做开发的时候,会遇到一个不太舒服的情况:项目编译已经过了,程序也下载进去了,但想看一下片子内部的FLASH内容、想改一下选项字节、…

作者头像 李华