首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ffmpeg转换视频格式和复制标签

使用ffmpeg转换视频格式和复制标签
EN

Stack Overflow用户
提问于 2012-07-29 09:59:50
回答 3查看 25.3K关注 0票数 15

我一直在尝试将我在相机上拍摄的一些视频转换为压缩格式,以节省一些存储空间。我知道如何使用ffmpeg将视频转换为我想要的格式,但我还不知道如何复制元数据。我想复制视频拍摄时的原始元数据(最重要的是创建时间)。我尝试过使用-map_meta_data 0:0选项运行ffmpeg,但似乎不起作用。有什么想法吗?

在这种情况下,我想要复制的数据看起来是在视频的格式部分。使用带show_format选项的ffprobe,我会得到以下输出:

代码语言:javascript
复制
[FORMAT]
filename=video.AVI
nb_streams=2
format_name=avi
format_long_name=AVI format
start_time=0.000000
duration=124.565421
size=237722700
bit_rate=15267331
TAG:creation_time=2012-02-07 12:15:27
TAG:encoder=CanonMVI06
[/FORMAT]

我想将这两个标签复制到我的新视频中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-29 12:35:57

看一看the documentation on dumping and loading metadata

FFmpeg能够将媒体文件中的元数据转储到一个简单的UTF8编码的类似INI的文本文件中,然后使用元数据复用器/解复用器将其加载回来。

该过程可能如下所示:

代码语言:javascript
复制
# First extract metadata
ffmpeg -i original.mov -f ffmetadata metadata.txt
# Next, transcode, including extracted metadata
ffmpeg -i original.mov -f ffmetadata -i metadata.txt compressed.mp4

我现在没有一个可以测试的元数据丰富的视频,但这样的东西应该可以工作。

票数 11
EN

Stack Overflow用户

发布于 2016-05-21 16:25:04

使用"-map_metadata 0:g“复制所有全局元数据。

0表示输入#0。G表示全局元数据。

这是我的ffprobe结果。享受吧!

input.mp4

代码语言:javascript
复制
[FORMAT]
filename=input.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=60.560500
size=190252680
bit_rate=25132246
probe_score=100
TAG:major_brand=mp42
TAG:minor_version=1
TAG:compatible_brands=mp42avc1
TAG:creation_time=2016-05-14 10:01:17
[/FORMAT]

output.mp4

代码语言:javascript
复制
[FORMAT]
filename=output.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=60.632000
size=38636429
bit_rate=5097826
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:creation_time=2016-05-14 01:01:17
TAG:encoder=Lavf57.36.100
[/FORMAT]
票数 9
EN

Stack Overflow用户

发布于 2018-05-29 16:57:21

要将所有元数据(全局、视频、音频)写入文件,请使用

代码语言:javascript
复制
ffmpeg -i in.mp4 -c copy -map_metadata 0 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -f ffmetadata in.txt

要添加文件中的所有元数据,请使用

代码语言:javascript
复制
ffmpeg -i in.mp4 -f ffmetadata -i in.txt -c copy -map_metadata 1 out.mp4
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11706049

复制
相关文章

相似问题

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