首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视频旋转问题

视频旋转问题
EN

Unix & Linux用户
提问于 2020-08-21 09:37:50
回答 1查看 732关注 0票数 0

我有一个由智能手机垂直记录的视频剪辑,我试图使用通常的ffmpeg命令顺时针旋转它90度(因为一些玩家无法读取EXIF旋转数据并通过自动旋转来正确显示)。它的EXIF元数据包括“宽度: 848;高度: 480;旋转: 90”--通常,这个命令应该这样做:

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf transpose=1 output.mp4

然而,实际结果只是水平翻转,而相关的EXIF元数据变为“宽度: 848;高度: 480;旋转: 0”--“我尝试了所有转置值(0,1,2,3),没有一个能给我提供"Width: 480Height: 848;旋转: 0”的视频。

理想的情况下,我也希望保留所有原始EXIF数据,如日期和时间,相机和GPS的细节,等等,这些都是与上述命令。

有什么想法吗?

注:使用由gcc 9构建的ffmpeg版本4.2.4-1 ubuntu0.1 (Ubuntu 9.3.0-10 ubuntu2)

EN

回答 1

Unix & Linux用户

发布于 2020-08-21 09:57:33

在重新编码之前,ffmpeg似乎也考虑到了原始文件的EXIF元数据“旋转: 90”和自动转换。最后,我编写了一个脚本,它可以被合并到文件管理器(如Dolphin、Nautilus、Thunar等)的上下文菜单中,以便根据EXIF旋转元数据旋转视频,保存EXIF时间戳,并在@Gyan的帮助下复制EXIF GPS信息。

代码语言:javascript
复制
#!/usr/bin/env bash
# Requires ffmpeg and libimage-exiftool-perl packages
OLDIFS=$IFS
IFS="
"
for filename in ${@}
do
    name=${filename%.*}
    ext=${filename##*.}
    ffmpeg -i "$filename" -map_metadata 0 "${name}_rotated.${ext}"
    GPSLatitude="$(exiftool -GPSLatitude "$filename" | awk -F' : ' '{print $2}' | sed -e "s/ deg / /" -e "s/' / /" -e "s/\" / /")"
    GPSLongitude="$(exiftool -GPSLongitude "$filename" | awk -F' : ' '{print $2}' | sed -e "s/ deg / /" -e "s/' / /" -e "s/\" / /")"
    exiftool -GPSLatitude="$GPSLatitude" -GPSLongitude="$GPSLongitude" "${name}_rotated.${ext}" -overwrite_original
    mv "${name}_rotated.${ext}" "$filename"
done
IFS=$OLDIFS
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/605554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档