我用我的 MotoG3 手机 Android 手机录制了一个视频,生成的视频(可能是由于晃动手机)旋转播放,即垂直播放,这不是我想要的。视频保存在 MP4 容器中。
在检查录制的文件时,我看到(同时使用ffprobe和mediainfo)它包含一个标志,指示视频流旋转了 90 度,这解释了播放视频时的旋转。这是以下的输出ffprobe:
$ ffprobe -hide_banner ~/Pictures/2016/06/19/vid_20160619_170845475.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/rbrito/Pictures/2016/06/19/vid_20160619_170845475.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2016-06-19 20:25:49
com.android.version: 6.0
Duration: 00:17:01.96, start: 0.000000, bitrate: 17134 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 17000 kb/s, SAR 1:1 DAR 16:9, 29 fps, 29.42 tbr, 90k tbn, 180k tbc (default)
Metadata:
rotate : 90
creation_time : 2016-06-19 …Run Code Online (Sandbox Code Playgroud) 我得到了一个没有元数据的视频文件。
例如,如果我这样做:
ffmpeg -i test.m2v
Run Code Online (Sandbox Code Playgroud)
我得到这些值:
Duration: N/A, bitrate: N/A
Run Code Online (Sandbox Code Playgroud)
还有办法获取视频/.m2v 文件的持续时间吗?
编辑:
完整的控制台输出:
ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 5.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfr
eetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enab
le-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink
--enable-zlib
libavutil 54. 31.100 / 54. …Run Code Online (Sandbox Code Playgroud) 通常,当我运行ffmpeg -i "$name.$oldext" "$name.ogg"、 、 或 中的任何oldext一个时,所有元数据都会被保留。但是,我刚刚发现,在初始文件是带有嵌入封面图像的特定情况下,生成的. 转换成是一样的。转换为保留嵌入的封面,但不保留其他元数据。.opus.m4a.flac.opus.ogg.flac.mp3
在这种情况下我该怎么做才能保留元数据?或者,是否有一个简单的脚本可以将元数据从一个文件批量复制到另一个文件。许多一对一的副本,即不是一对多的副本(我已经可以做到)。
命令的当前输出:
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=
/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --dis
able-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth
--enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio
--enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --
enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enab
le-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr …Run Code Online (Sandbox Code Playgroud) 我想从 MP3 文件中提取元数据。这将进入脚本,因此我想从命令行执行此操作。由于我已经安装了 ffmpeg,我想我可以用它来实现这个目的。我在这里找到了以下描述:
使用 ffmpeg 提取 ffmetadata 文件如下:
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的:
ffmpeg -i InSpace.mp3 -f ffmetadata meta.txt
Run Code Online (Sandbox Code Playgroud)
并发现它确实使用meta.txt所需的数据创建,但也将不同格式的元数据转储到stderr,以及错误消息输出文件为空,没有编码(如果使用,请检查 -ss / -t / -frames 参数)。此外,它还会将此分页提示打印到 stderr:
Stream mapping:
Press [q] to stop, [?] for help
Run Code Online (Sandbox Code Playgroud)
然后等我输入一些东西。
当然,我可以通过将命令编写为来解决这个问题
ffmpeg -i InSpace.mp3 -f ffmetadata meta.txt </dev/null 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
但这看起来很不优雅,而且也意味着真正的错误消息也被丢弃了。
我做错了什么?或者,是否有更好的方法从命令行提取元数据?
更新:
按照gregg评论中的建议,我尝试了:
ffprobe -show_entries 'stream_tags : format_tags' InSpace.mp3
Run Code Online (Sandbox Code Playgroud)
这也在 stderr 上产生了大量文本(包括诸如使用哪个 gcc 版本来创建程序之类的信息),而且还将标签转储到 stdout。当然,我可以再次将 stderr 重定向到 /dev/null,虽然输出格式比 ffmpeg 生成的格式稍微不太方便,但获取 stdout 上的信息比 …
我正在寻找 MKV 元标记编辑器。我在 iMac 上使用 PLEX Media Server 和 PLEX Media Center 看电影。
PLEX 很棒,因为它会自动查找并命名我的整个电影库,包括年份、导演、性别、原始标题、描述、电影海报艺术等。
不幸的是,它仅将所有数据保存到应用程序 DB 文件中,而不会编辑 MKV 文件中的任何标签。
20% 的电影需要修复,或者 PLEX 需要帮助找到正确的电影名称,所以如果我需要移动我的所有库,否则我需要再次进行所有标记工作。
那么,是否存在 MKV 元标记编辑器?
我正在尝试找到一种使用 pdfcreator 创建 PDF 并将 PDF Producer 设置为 ghostscript v* 以外的内容的方法。
由于某些奇怪的原因,我将 Pdf 文件传送到的程序只接受佳能生成的 PDF 文件。
我认为可能有某种我可以传递的 ghostscript 参数,但没有发现任何明显的东西。我什至考虑将 pdf 传递给 vbscript 以修改该属性,但我不会立即看到我可以创建的任何对象来修改它。
任何想法或方向将不胜感激。
我的磁盘上有一堆 avi 格式的电影。但是,它们不包含任何元数据,如标题等。
我找到了一个可以为我做的命令:
ffmpeg -i input.avi -metadata title="Moonshine" -metadata author="Moonshine" -metadata copyright="2009" -metadata comment="foo" -acodec copy -vcodec copy output.avi
Run Code Online (Sandbox Code Playgroud)
这工作正常,但它只会复制一个音轨。我的文件包含多个音轨。我希望 ffmpeg 复制所有内容并只给文件一个标题。
另外,有没有办法给音轨一个语言名称?例如,一个文件包含 2 个音轨。第一个是英语,第二个是俄语。如何正确命名它们,以便当我使用视频播放器时,它会在语言菜单中显示第一个是英语,第二个是俄语?
如何找出 .exe 文件的详细信息 - 例如软件作者、供应商、日期、版本等?
当我右键单击文件并选择属性时,我没有得到这些信息。
但是,如果我将文件上传到virustotal.com(不为他们工作或与他们有任何关联 - 所以这不是促销)然后我可以看到上述信息。
我不想上传文件,所以我正在寻找一个 Windows 工具来做到这一点,拜托。这应该是读取信息的简单过程,因为我上传到virustotal 表明该信息已经在文件中。注意:我使用virustotal 的主要目的不是扫描.exe,而是使用virustotal 提供的工具来读取文件元数据。
背景:我正在整理一些下载的文件,需要了解有关它们的更多信息。
我已经搜索过但没有找到我需要的答案,这让我感到非常惊讶。
我正在尝试通过提取元数据文件并按照本指南将带有 ffmpeg 的自定义章节添加到 mp4 文件中。
但是,当我编辑元数据文件以更改任何章节名称时,重新添加元数据的第二个命令会忽略对章节的更改并保持原样。它肯定正确地读入了元数据文件,因为当 ffmpeg 打印出两个输入文件的数据时,它会打印出 mp4 的流和元数据文件的所有元数据,所有章节都正确格式化和解析。
但是,一旦它创建了输出文件,它就会再次具有旧的章节名称。如果我更改了其他有效的元数据(例如标题键或艺术家键),但章节没有。
命令开始的完整日志:
PS D:\ffmpeg> ./bin/ffmpeg.exe -i .\new_file.mp4 -i FFMETADATAFILE -map_metadata 1 -codec copy .\output.mp4
ffmpeg version N-90979-g08032331ac Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf …Run Code Online (Sandbox Code Playgroud) 使用时exiftool -all:all= file.pdf出现此消息:
ExifTool PDF 编辑是可逆的。删除的标签可能会被恢复!
使用 ExifTool 时可以阻止标签恢复吗?它可以在不保存以前的信息的情况下擦除/覆盖它们吗?
PDF就是一个例子。我知道 MAT2,但我不想像 MAT2 那样重建和光栅化文件。