问题标签 [bitrate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2419 浏览

batch-file - 批处理或 VBS | 如何检查音乐文件的比特率?

我需要检查音乐文件的比特率,我需要以数字形式接收数字,例如:192000(对于 192 kbps)、320000(对于 32kbps)或 (+)3000000(对于 wav 和未压缩音乐)。我的意思是我需要确切的数字,如果 MP3 是 VBR 并且以 194 kbps 压缩,我需要 194000 数字,而不是当前的 CBR 192000。

我正在使用MEDIAINFO (x64) CLI 程序批量完成这项工作:

但我有 35.000 多个文件要检查,然后所有文件的审查时间超过 2 小时。


我需要一个简单的代码来检查它,而不是一个需要执行它并浪费大量时间的程序......

代码至少需要识别这种文件类型(我的意思是内部比特率)非常重要: AIFF、FLAC、M4A、MP3、OGG、WAV、WMA。

并且不能是 Ruby 或 Python 的代码,因为我需要“编译”它并确定什么时候“编译”会浪费大量时间来检查很多文件(导致编译的 .exe 解压缩)。

更多信息:我考虑将结果存储在一个文件中,然后进行比较以仅检查新添加的文件,但我无法存储结果以在下次运行时进行比较,因为有时我需要替换检查的文件(旧文件)。顺便说一句,我也不能通过文件时间戳来处理这个问题。需要成为一个独特的程序来检查所有文件,永远(或者这就是我的想法......)。


我尝试了另一种方法来检查比特率,我真的确定这是我需要的,但我无法让它像我想要的那样运行......

这个 VBS 使用 DBPowerAmp 程序 API,并显示一个带有信息的窗口(包括比特率),但是对于一个窗口我什么也做不了......也许如果我可以将窗口信息重定向到一个文本文件......然后通过读取文本文件中的比特率信息来设置变量“比特率”......但我不知道该怎么做:

我试图像这样将该代码“转换”成批处理,但是不要运行,我什么也没得到:

哦,我也试过这个,但比 mediainfo 浪费更多时间:

0 投票
1 回答
13997 浏览

ffmpeg - FFMPEG 忽略比特率

我是视频编码的新手,所以请耐心等待。

我正在使用 FFMPEG。我有一个 640 x 350 的 mp4 文件,平均比特率约为 2000kb(我认为),文件大小为 80Mb。我想将其转换为比特率低得多(128kb)但宽度和高度相同的 ogv 文件。我正在使用以下命令...

...但 FFMPEG 似乎忽略了我的比特率选项并输出比特率约为 600kb 且文件大小约为 3Mb 的文件。

我可以使用 FFMPEG2THEORA 使用以下命令执行此操作...

...但我想知道是否可以使用 FFMPEG。

有任何想法吗?

编辑

mark4o 解决了我的问题。事实证明,默认的音频编解码器增加了文件大小。将其更改为 libvorbis 已大大减少了文件大小。最终命令看起来像

  • -i= 输入文件
  • -b:v= 视频流的比特率
  • -b:a= 音频流的比特率
  • -codec:a= 覆盖默认音频编解码器
0 投票
1 回答
56761 浏览

ffmpeg - 如何使用 FFMPEG 强制恒定比特率

我使用 FFMPEG(命令行输入)将我的视频转换为特定的输出格式。我面临的问题是当我尝试将恒定比特率(700 kbps)传递给 FFMPEG 时,结果是输出视频具有不同的比特率(比如 1000 kbps)。所有视频都会出现这种现象。为什么会出现这种情况?我需要保持恒定的比特率。谁能帮我吗。

我的 FFMPEG 版本是 0.5

我传递给 FFMPEG 的命令行参数是,

编辑:

当我使用以下参数时,我能够以 +/- 3% 的波动强制 CBR。

但是当我使用 -maxrate 和 -minrate 以及我的参数集时,我无法强制 CBR。我的参数集如下,

为什么会这样?

0 投票
1 回答
1976 浏览

video - Http Live Streaming EXT-X-STREAM-INF,计算 BANDWITH

最初,我试图找到在其他非 Mac 平台上进行 HLS 分段的可能方法。

为 HLS 分割视频涉及以下步骤:

1) 将编码的视频分割成段

2) 创建播放列表 (.m3u8) 文件,其中仅包含当前再现的片段列表,包括每个片段的持续时间(以秒为单位)

3) 创建一个变体播放列表,其中包含所有演绎版的所有播放列表的相对路径,其中包含有关 BANDWITH 的信息,根据 HTTP Live 流协议为:

该值是每秒位数的十进制整数。它必须是出现或将出现在播放列表中的每个媒体片段的总比特率的上限(计算为包括容器开销)。

最新版本的 ffmpeg 包括分割视频的可能性。但是 ffmpeg 不能创建 m3u8 文件。创建简单的播放列表不是问题。但创建变体播放列表可能是:

因此,Mac 上的 variantplaylistcreator 创建了这些,以某种方式计算比特率并将基于该值的值放入 BANDWITH 标签。

我尝试了许多不同的方法,但我无法获得与 variantplaylistcreator 完全相同的数字,此时我找不到任何信息它如何准确计算这些值以及它使用什么算法。我的数字很接近,但仍然略有不同。

从理论上讲,这应该不是问题,但重点是-我不确定。也许 BANDWITH 信息对于完美的视频播放应该是精确的,也许不是必须的。

无论如何,我真的很好奇 variantplaylistcreator 究竟是如何计算它们的:

0 投票
1 回答
3277 浏览

c - libx264 Codec 忽略通过 ffmpeg API 设置视频比特率

我正在使用 c 代码中的 FFMPEG API 对视频进行转码。我正在尝试使用 ffmpeg API 设置视频比特率,如下所示:

我使用的编码器是 libx264。

但是这个参数没有生效,结果视频质量很差。我什至尝试设置相关参数,如rc_min_rate、rc_max_rate等。但由于这些相关参数没有生效,视频质量仍然很低。

任何专家都可以告诉人们如何使用 FFMPEG API 正确设置比特率吗?谢谢

0 投票
0 回答
269 浏览

mp3 - 可变比特率 MP3 文件的支持范围有多广?

我正在开发一个音频制作工具,并试图弄清楚我应该为“选择输出编码”窗口做出哪些默认值和 UI 选择。我想默认输出到 VBR(并将界面聚焦于此),但大多数工具默认为 CBR,我试图找出原因。

与 CBR 相比,在 VBR 中编码 MP3 可以节省大量带宽,但您仍然可以找到大量不使用它的人,即使带宽非常宝贵。特别是,我找不到任何使用 VBR 的播客,尽管它特别适合混合谈话和音乐的广播式内容。这包括可以在带宽上每年节省数万美元的顶级播客(例如 This American Life)。

我在网上进行了广泛的搜索,看看是否能找到 VBR 的任何缺点。我唯一能找到的是一些较旧的 mp3 播放器不支持它。自 2004 年以来,是否有任何广泛发布的不支持 VBR 的媒体播放器或硬件问世?

0 投票
0 回答
413 浏览

iphone - 如何在 iPhone sdk 中为 MP3 文件设置速度/比特率?

我正在尝试将 MP3 文件的速度更改为保存在 iPhone 中的 b。我知道它是流式音频,但有没有办法永久反映这种变化?我能够 [musicPlayer setRate:float_value] 以更改的比特率播放音频,是否也可以以某种方式存储它?

或者是否可以在以更改的比特率播放时将同一文件内部录制到另一个文件中。请帮我解决这个问题。先感谢您!

0 投票
1 回答
7236 浏览

video-streaming - x264 速率控制

我们在视频会议项目中使用 x264 编码器,我们有基本的流视频工作,但是,我们无法理解各种速率控制设置如何确定最终比特率。我们设置以下参数:

如果我们只设置 params.rc.i_bitrate 参数,编码器似乎大大超过了比特率。如果我们设置 i_vbv_max_bitrate 和 i_vbv_buffer_size 参数,我们会看到一个比特率达到峰值(有时超过) i_vbv_max_bitrate 设置。显然,严格控制比特率对于视频会议很重要,但文档有点不透明。还有其他人使用 x264 进行视频会议吗?你是如何设置编码器的?任何帮助表示赞赏,在此先感谢。

0 投票
2 回答
2550 浏览

html - 上传前在JS中提取音频比特和采样率信息

我正在构建一个应用程序,它允许经过身份验证的用户使用 Web 浏览器将 MP3 音频文件(语音)上传到服务器,以便在网络上分发音频。音频文件需要使用特定的比特率(32kbps 或更低)以确保有效使用带宽,并使用经批准的采样率(22.050 或 44.100)以最大限度地提高兼容性。我希望在上传之前使用 HTML5 FileReader 来确定这些信息,而不是使用服务器端脚本在上传后验证这些要求。如果浏览器检测到无效的比特率和/或采样率,则可以告知用户这一点,并且可以阻止上传尝试,直到对音频文件进行必要的修改。

这可能使用 HTML5 吗?请注意,问题是关于 HTML5,而不是关于我的应用程序的方法。HTML5 可以检测 MP3 音频文件的采样率和/或比特率吗?

仅供参考:我正在使用 FTP Java 小程序来执行上传。小程序设置为在成功上传后自动将用户转发到我选择的 URL。这将繁重的工作交给了客户端,而不是服务器。这也是必要的,因为每个上传文件的最终目的地是不同的;它们可以在不同的服务器和不同的域上,可能在服务器上支持不同的脚本语言。否则,任何一台服务器都会很快超出其存储空间,或者如果服务器端脚本进行了 FTP 传输,服务器的性能将作为单点故障迅速下降。因此,对于我的应用程序,它将上传的音频文件存储在多个服务器和多个域上,比特率和采样率的验证必须在客户端进行。

0 投票
2 回答
691 浏览

android - 在 ICS 的 CAN 接口中设置比特率时出错

我正在尝试在 android 的 i.Mx6 处理器中设置比特率。我正在使用 iproute2 实用程序为 CAN 控制器设置比特率。用于设置比特率的命令如下:

当我尝试使用以下命令在 android 中设置比特率时,我收到错误消息。

错误信息如下:

垃圾而不是参数“比特率......”。" "试试\"ip链接帮助\""

我对这个实用程序的源代码进行了分析和调试,并与Linux实用程序源进行了比较。发现错误发生在系统调用dlsym()中。

这个函数假设返回一些有效的地址。但就我而言,它返回NULL。