目录

海康威视录像机G726音频无法播放的转码方法

问题起因

  1. 当前发现Windows的完美解码(PotPlayer)播放器也不能播放海康威视录下来的MP4视频中包含的G726音频格式的声音,但是群晖监控的在线播放器、以及手机APP DS Cam都能播放。
  2. 把视频拖入PR中,发现PR也不能解码出音频
  3. Windows自带的播放器也不能播放

于是只能自己动手把视频里的音频转一下码。

转码方法

做这种事情肯定就要请出神器ffmpeg了。

  1. 下载地址

https://ffmpeg.org/download.html

  1. 分析音频流:可以发现是15K的采样率

/posts/20221204054226/5e6ce8f04a0f47969e4c25e237bec942.png

  1. 转码
1
ffmpeg -acodec g726 -i "origin.mp4"  -vcodec copy -b:a 32k -map 0 output.mp4
参数 说明
-acodec g726 音频解码器为g726,注意参数的前后顺序,一定要在-i之前,表示使用它解码
-i 输入视频文件路径
-map 0 将第一个输入的所有流(视频流和音频流)都转换输出
-vcodec copy 视频流进行拷贝,不重新编码。注意参数的前后顺序,一定要在-i之后,表示使用它编码
-b:a 32k 音频采样率指定32k

理论上PCM转PCM是最好的,可以无损,但是mp4格式只能放aac。avi格式只能放8位的PCM,此处采集到的是16位的G726,因此感觉折中方案只能转AAC,然后采样率2倍即可最少失真。

批处理

把所有要转码的文件单独放到一个文件夹内,在此文件夹中执行以下批处理代码,即可自动在output目录生成对应转码后的视频

1
2
3
4
@echo off
md output
for %%i in (*.mp4) do ( ffmpeg -acodec g726 -i  %%i -vcodec copy -b:a 32k -map 0 output/%%i.mp4 )
pause