标签: mediainfo

MediaMetadataCompat附加功能

有没有办法使用支持库中的MediaMetadataCompat附加功能?

使用MediaMetadata我可以设置额外内容,但使用compat,我不能.

android mediainfo chromecast mediabrowserservicecompat

8
推荐指数
1
解决办法
1286
查看次数

MediaInfo CLI(命令行界面)语法一劳永逸地教我

亲爱的 Stack Overflow 的朋友们,我注意到这里有很多类别的提问模式,但为了这个主题,我将讨论 MediaInfo CLI。同类型的问题不断重复出现,因为源问题没有解决,就是教人钓鱼,而不是喂鱼。

有人问:“我不知道如何仅从 MediaInfo 获取 BitRate”。他们受到尊重,回答他们的高级用户也受到尊重。其他人对 FrameRate、Duration 和 Resolution 提出了同样的问题……我尊重他们,也尊重回答他们的人。

然而,我真的很抱歉这个过程是多余的。不幸的是,MediaInfo 网站文档没有说明如何正确使用带有 CLI 版本的 MediaInfo.exe 来提取特定信息,并且 --Info 参数只是列出了很多参数,而没有说明如何使用它们。

因此,为了使用 MediaInfo.exe CLI 提取视频的特定信息,我只需要在这里提问,因为我无法自己自定义参数,因为我没有获得文档中的语法。我会采取简单的方法来问你我需要从视频中提取什么样的信息,但是每个不知道语法的人都会回来问多余的问题。

相反,我决定通过编写所有这些来浪费您更多的时间,希望您能帮助我和其他所有来搜索有关如何使用 MediaInfo CLI --Info-Parameters 语法的特定问题的人,以便不会为每个自定义查询重复答案。

老实说,我想了解如何使用它,而不仅仅是复制粘贴我将收到的现成的单行答案。

我将首先提到我所知道的,任何新的询问者都可以从我所知道的很少中学习,然后我会请你教我如何编写正确的 MediaInfo --Info-Parameters 语法来提取特定的视频信息.

  1. 下载 MediaInfo 的 Windows CLI 版本后,解压缩 zip 文件并将其放在桌面上。
  2. 运行 + 指令
  3. 导航到桌面上的 MediaInfo 文件夹。
  4. 将一些视频文件放在 MediaInfo 文件夹中。
  5. 在终端上运行以下命令:

    MediaInfo.exe --help >Help.txt

    MediaInfo.exe --Info-Parameters >Info_Parameters.txt

现在您有一些帮助文件来搜索您需要的信息。这个简单文档的其余部分取决于我的 StackOverflow 成员的慷慨。

为了更清楚我的问题,一劳永逸:如何为 MediaInfo.exe CLI 编写正确的语法以提取特定信息,例如帧速率、持续时间和分辨率?我需要比现成的解决方案更了解语法,以便以后能够对其进行自定义。

感谢您的时间!

parameters syntax command-line-interface mediainfo info

8
推荐指数
3
解决办法
1万
查看次数

如何将 MediaInfo 与 Amazon S3 结合使用?

根据 MediaInfo ChangeLog,Amazon S3 支持已在 v0.7.76 中添加,甚至在 v0.7.77(最新)中进行了修补。

但是,我找不到有关如何实现它的任何文档。它不在 CLI 帮助菜单中,也不在 SourceForge 项目页面中。我希望这里有人可能有一些见解,因为 SourceForge 论坛已关闭。

如何制作 MediaInfo 命令以将 Amazon S3 与访问密钥和秘密密钥一起使用?我正在使用 CLI。

我能找到的最接近的东西是某人的示例 Java 代码:http : //fossies.org/linux/MediaInfo_CLI/MediaInfoLib/Source/Example/HowToUse_Dll.JNA.java

看起来他们正在为 S3 制作自定义 HTTP 请求并将响应流式传输到 MediaInfo。我不知道。我不懂 Java;我只知道 Bash、Ruby、PHP。

有没有人成功地让 MediaInfo 与 S3 一起工作?像这样的东西?

mediainfo https://AWSAccessKeyId:AWSSecretAccessKey@s3.amazonaws.com/bucketname/filename
Run Code Online (Sandbox Code Playgroud)

amazon-s3 mediainfo

6
推荐指数
1
解决办法
3186
查看次数

如何使用 ffprobe 找出视频文件的确切容器/格式?

我想使用 ffprobe 找出视频文件的确切格式/容器,但我无法到达它的“确切”部分。

当我运行此示例命令时:
ffprobe -hide_banner -loglevel fatal -show_error -show_format -print_format json INPUT
我收到以下输出:

{
    "format": {
        "filename": "INPUT",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "matroska,webm",
        "format_long_name": "Matroska / WebM",
        "start_time": "0.000000",
        "duration": "2.969000",
        "size": "2376430",
        "bit_rate": "6403314",
        "probe_score": 100,
        "tags": {
            "COM.ANDROID.VERSION": "9",
            "MAJOR_BRAND": "mp42",
            "MINOR_VERSION": "0",
            "COMPATIBLE_BRANDS": "isommp42",
            "COM.ANDROID.CAPTURE.FPS": "30.000000",
            "ENCODER": "Lavf57.83.100"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您可能已经理解的, ffprobe 给出了value内的格式列表format_name。对于 mp4、mkv、webm 等多种视频格式来说都是如此。

然而,mediainfo能够找出格式的确切类型Format,即它输出如下所示的单个:
命令:mediainfo INPUT
输出:

General
Unique ID                                : 41836023869371892704046005573890259380 (0x1F79533A912A2117C3D4CEB704EAB9B4) …
Run Code Online (Sandbox Code Playgroud)

ffmpeg mediainfo ffprobe

6
推荐指数
1
解决办法
6182
查看次数

如何在C#中读取.wav文件的比特率

鉴于我有一个.wav文件,在C#中读取其比特率属性的最佳方法是什么.我试过Shell,并问了一个问题"比特率"属性是否固定在索引28中?没有asnwers所以.此外,我现在相信Shell不是读取音频文件属性的最佳方式.我研究过不同的开源媒体库,但是找不到多少.

TagLib#:这个工作正常,但有两个问题.在比特率非常低(如小于30)的某些情况下,它不反映实际比特率,它只返回0.其次,我不确定是否可以将其用于商业用途.许可证说 http://opensource.org/licenses/LGPL-2.1

NAudio:根本没有暴露任何属性来读取比特率,所以我必须计算它.经过研究,我得到了这个公式来计算比特率.bitrate = Samplerate*Channels*BitsPerSample.这在大多数情况下都可以正常工作,但是如果某些.wav文件的BitsPerSample = 0则会失败.是的文件绝对没问题,我可以播放,但BitsPerSample仍为0.

MediaInfo:再次没有直接属性,必须遍历音频文件的所有属性,然后搜索"整体比特率".而且必须在项目中添加两个dll,一个是.net包装器,另一个是实际的dll.

为这么长的总结道歉,但我不想问"嘿我怎么能得到音频文件的比特率"而不显示我已经做过的事情.那么,如果你有一个.wav音频文件,你会用什么库/方法来获得比特率?

c# audio naudio taglib-sharp mediainfo

5
推荐指数
2
解决办法
6046
查看次数

批次| 将多个变量回显到文件

目录包含2个(或更多)具有任意随机名称的视频文件.

video1.mkv
video2.mkv
Run Code Online (Sandbox Code Playgroud)

需要找出每个视频的持续时间.为此,我们使用MediaInfo.

setlocal EnableDelayedExpansion

for %%a in (*.mkv) do (
  for /f "usebackq" %%a in (`"mediainfo --Inform=Video;%%Duration%% %%a"`) do set duration=%%a

  echo "!duration!" > "data.txt"
)
Run Code Online (Sandbox Code Playgroud)

问题是,它只打印1个值/持续时间(我认为是最后一个文件).它有效,只购买一个文件.

如何使其与目录中的所有文件一起使用?

windows batch-file command-line-interface mediainfo windows-10

5
推荐指数
1
解决办法
904
查看次数

ffmpeg vs mediainfo用于获取缩略图和元数据

我需要从视频文件中提取元数据信息以及该文件的缩略图.为此,我尝试了ffmpeg,并在stdout上看到元数据(如持续时间,分辨率,编解码器,creation_time等).如果我需要使用这些,我应该解析stdout并提取我需要的元数据.

我还读到了MediaInfo实用程序,它也提供了元数据.我不确定它是否可以提供缩略图.我也知道MediaInfo并没有使用ffmpeg.

我想知道是否有人对ffmpeg和MediaInfo以及我上面提到的要求都有工作知识,是否有人可以建议哪两个更适合.

两者的内存占用比较也很大.

video metadata ffmpeg mediainfo

4
推荐指数
2
解决办法
6152
查看次数

如何使用mediainfo以秒或其他格式查找视频文件的持续时间?

如何以毫秒为单位查找视频文件的持续时间,即以确定的方式以整数形式查找.我使用ffprobe来获取持续时间,但它没有给出所有文件格式的持续时间.

video multimedia ffmpeg mediainfo ffprobe

4
推荐指数
2
解决办法
1万
查看次数

在 zenity 中格式化管道文本

我正在尝试在 Zenity 对话框中显示一些 mediainfo 输出,使用

mediainfo 00000.MTS | zenity --text-info
Run Code Online (Sandbox Code Playgroud)这里的有结果。如图所示,由于空格,文本格式错误,而在 terminal 中显示恰到好处。

我可以改变这个吗?此外,是否可以格式化特定的文本字符串(例如:“常规”和“视频”标题)?

formatting zenity mediainfo

4
推荐指数
1
解决办法
1515
查看次数

获取媒体文件持续时间的最快方法是什么?

我正在开发一个程序,该程序扫描放置文件夹中的文件,并将它们注册到另一个需要文件持续时间的系统。到目前为止,我能找到的最佳解决方案是使用 MediaInfo 从标头获取持续时间,但由于某种原因,它往往需要几秒钟才能返回结果。

假设我有 1,000 个文件路径的列表,并且我想获取每个文件路径的持续时间,但获取持续时间需要 15 秒。对列表进行线性迭代只需要 4 个多小时,甚至并行运行 8 个任务也需要半个小时。根据我的测试,这将是最好的情况。

我尝试过使用 MediaInfo DLL 以及调用 .exe,两者似乎都有相似的处理时间。

DLL代码:

MediaInfo MI;

public Form1()
{
    InitializeComponent();
    MI = new MediaInfo();
}

private void button1_Click(object sender, EventArgs e)
{
    MI.Open(textBox1.Text);
    MI.Option("Inform", "Video;%Duration%");
    label2.Text = MI.Inform();
    MI.Close();
}
Run Code Online (Sandbox Code Playgroud)

可执行代码:

Process proc = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "MediaInfo.exe",
        Arguments = $"--Output=Video;%Duration% \"{textBox1.Text}\"",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};

StringBuilder line = new StringBuilder();
proc.Start(); …
Run Code Online (Sandbox Code Playgroud)

c# c#-4.0 mediainfo

4
推荐指数
1
解决办法
2067
查看次数