视频格式转换和复制标签的有关ffmpeg(Converting video formats and

2019-06-26 14:56发布

我一直在想一些影片,我把我的相机,以压缩格式转换,以节省存储空间。 我想通了如何使用FFMPEG的视频转换成我想要的格式,但我一直没能搞清楚的是如何复制的元数据。 我想原来的元数据从在视频拍摄(最重要的是创建时间)复制。 我试着用-map_meta_data 0运行的ffmpeg:0选项,但似乎并没有工作。 有任何想法吗?

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

[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]

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

Answer 1:

看看对倾销和加载元数据文件 :

FFmpeg的是能够转储从媒体文件的元数据到一个简单的UTF-8编码的INI般的文本文件,然后使用元数据复用器/解复用器加载回来。

该过程可能会是这个样子:

# 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

我没有元数据FUL视频,现在来测试,但这样的事情应该工作。



Answer 2:

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

0表示输入#0。 克装置全局元数据。

这是我的ffprobe结果。 请享用!

input.mp4

[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

[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]


Answer 3:

为了写出所有元数据(全局,视频,音频)到文件中使用

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

从文件中添加使用的所有元数据

ffmpeg -i in.mp4 -f ffmetadata -i in.txt -c copy -map_metadata 1 out.mp4


文章来源: Converting video formats and copying tags with ffmpeg