如何在python-vlc中获取比特率,采样率和每个样本的位数

Arkyo

我正在尝试使用python-vlc获得每个音频文件样本的比特率,采样率实际比特。

我看到我们可以libvlc_media_tracks_get()用来获取比特率,但是我不确定如何获取其他比特率

但是即使该方法可以获取所有3个信息,我仍然无法设法使该方法起作用。它需要2个参数p_mdtracks我不明白那是什么tracks它说它需要一个实例,LP_LP_MediaTrack但我无法以某种方式找到它的意思。

Arkyo

比特率:

# This allocates a double pointer and a MediaTrack object in RAM, then points to
# it, but no value is assigned to this double pointer or the MediaTrack object.
mediaTrack_pp = ctypes.POINTER(vlc.MediaTrack)()

# Assigns the MediaTrack in the double pointer to the values stored in `media`,
# returning the amount of media tracks as `n`
n = vlc.libvlc_media_tracks_get(media, ctypes.byref(mediaTrack_pp))

# Converts the double pointer to `POINTER` class that Python understands. We can
# then get the value the pointer is pointing at.
info = ctypes.cast(mediaTrack_pp, ctypes.POINTER(ctypes.POINTER(vlc.MediaTrack) * n))

# This gets the actual value of the double pointer i.e. value of MediaTrack
media_tracks = info.contents[0].contents

采样率(附加上面的代码):

# According to the API doc, MediaTrack class has an `u` field which has an
# `audio` field, containing the audio track.
audio = ctypes.cast(media_tracks.u.audio, ctypes.POINTER(vlc.AudioTrack))

# The AudioTrack class has a `rate` field, which is the sample rate.
sample = audio.contents.rate

我无法获得比特率的主要原因是因为我不了解如何获取数据类型LP_LP_MediaTrack这是MediaTrack实例的双指针。

vlc.libvlc_media_tracks_get(media, ctypes.byref(mediaTrack_pp))运行时,我想干脆在图书馆设置复制MediaTrack实例中media的实际存储位置是mediaTrack_pp

然后,我们可以使用ctypes.cast()方法获得Python中的实际对象该算法应适用于所有使用LP_xxx数据类型的Python代码,甚至适用于其他库。

解决了该问题后,剩下的就是处理API文档。
VLC MediaTrack类文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取pulseaudio当前采样率和比特率

来自分类Dev

如何在QT中获取音频文件的比特率?

来自分类Dev

如何在coreaudio中为AudioStreamBasicDescription指定比特率?

来自分类Dev

如何在 AVAudioRecorder 中控制 Opus 比特率

来自分类Dev

使用python分别获取Mp4文件的视频和音频比特率?

来自分类Dev

如何使用FFprobe从视频文件中获取音频比特率?

来自分类Dev

如何获得最高的视频比特率和尺寸?

来自分类Dev

如何在Windows 7中更改Bluetooth SBC比特率/比特池?

来自分类Dev

如何使用单个命令在 FFmpeg 中编辑音频比特率、速度和修剪?

来自分类Dev

如何在iOS中检查分辨率,视频比特率

来自分类Dev

CoreAudio:如何获取原始数据的实际采样率?

来自分类Dev

如何根据采样率在Python中按顺序均匀采样数组?

来自分类Dev

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

来自分类Dev

如何在Audacity中查看媒体文件的比特率

来自分类Dev

如何在SWIFT中获得MP3比特率

来自分类Dev

如何比较熊猫的频率/采样率?

来自分类Dev

Python Wave音频采样率

来自分类Dev

如何在javacv中修改FFmpegFrameRecorder.java以支持音频采样率更改?

来自分类Dev

如何在Java中以给定的采样率播放声音?

来自分类Dev

如何检索给定轨道ID的音频通道,比特率和其他质量测量

来自分类Dev

如何获取音频驱动程序的本机采样率(Windows)

来自分类Dev

如何从Google的ExoPlayer中获得观察到的比特率

来自分类Dev

不管比特率如何,如何保持音量最佳?

来自分类Dev

ffmpeg如何确定单个流的比特率?

来自分类Dev

如何考虑网络视频的比特率,-最大和-bufsize

来自分类Dev

如何获得Windows音频播放的当前采样率?

来自分类Dev

如何使用SciPy以不同的采样率读取.wav文件?

来自分类Dev

如何更改声音的非实时音调/采样率?

来自分类Dev

如何使用avprobe / ffprobe检测音频采样率?

Related 相关文章

  1. 1

    获取pulseaudio当前采样率和比特率

  2. 2

    如何在QT中获取音频文件的比特率?

  3. 3

    如何在coreaudio中为AudioStreamBasicDescription指定比特率?

  4. 4

    如何在 AVAudioRecorder 中控制 Opus 比特率

  5. 5

    使用python分别获取Mp4文件的视频和音频比特率?

  6. 6

    如何使用FFprobe从视频文件中获取音频比特率?

  7. 7

    如何获得最高的视频比特率和尺寸?

  8. 8

    如何在Windows 7中更改Bluetooth SBC比特率/比特池?

  9. 9

    如何使用单个命令在 FFmpeg 中编辑音频比特率、速度和修剪?

  10. 10

    如何在iOS中检查分辨率,视频比特率

  11. 11

    CoreAudio:如何获取原始数据的实际采样率?

  12. 12

    如何根据采样率在Python中按顺序均匀采样数组?

  13. 13

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

  14. 14

    如何在Audacity中查看媒体文件的比特率

  15. 15

    如何在SWIFT中获得MP3比特率

  16. 16

    如何比较熊猫的频率/采样率?

  17. 17

    Python Wave音频采样率

  18. 18

    如何在javacv中修改FFmpegFrameRecorder.java以支持音频采样率更改?

  19. 19

    如何在Java中以给定的采样率播放声音?

  20. 20

    如何检索给定轨道ID的音频通道,比特率和其他质量测量

  21. 21

    如何获取音频驱动程序的本机采样率(Windows)

  22. 22

    如何从Google的ExoPlayer中获得观察到的比特率

  23. 23

    不管比特率如何,如何保持音量最佳?

  24. 24

    ffmpeg如何确定单个流的比特率?

  25. 25

    如何考虑网络视频的比特率,-最大和-bufsize

  26. 26

    如何获得Windows音频播放的当前采样率?

  27. 27

    如何使用SciPy以不同的采样率读取.wav文件?

  28. 28

    如何更改声音的非实时音调/采样率?

  29. 29

    如何使用avprobe / ffprobe检测音频采样率?

热门标签

归档