20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤

20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤

千千静听v5.1.0

MKVToolNix v48.0
 

MediaInfo 0.7.86

Copyright (c) MediaArea.net SARL

 

支持多种格式的多媒体文件:

Matroska, OGG (包括 OGM)

MPEG-1 (包括 VCD)

MPEG-2 (包括 DVD, SVCD)

MPEG-4 (包括 iTunes M4A)

Quicktime

RealMedia

WindowsMedia (包括 WMV, WMA)

Microsoft RIFF (包括 AVI, WAV)

纯声音格式 (AC3, DTS, AAC, AU, AIFF...)
 



http://training.eeworld.com.cn/course/5779

工业4.0导论

传感器 工业4.0 大数据 共106课时 21小时32分1秒


1、最近看课程《工业4.0导论》 ,由于优酷视频现在限制一天只能上传5个视频文件。新版本腾讯视频取消了客户端上传,旧版本的腾讯视频客户端直接让你不能用(转码)。

于是直接用MKVToolNix将拿到的MP4直接合并成为MP4发布了。
"C:\Program Files\MKVToolNix\mkvtoolnix-gui.exe"

结果出现了错误:


 

 




 

--- 任务“混流到目录“C:\40”中的文件“001:1.1 工业4.0发展.mkv””(启动时间 2020-10-06 20:36:01 +08:00) 的错误消息 ---

文件「C:\40\075:云端制造 13.5 云端机器人-原始48K采样率的音频.mp4」中的轨道编号 1 无法追加到文件「C:\40\074:云端制造 13.4 协同机器人.mp4」中的轨道编号 1。两条音频轨道的采样率不同: 48000 与 44100

2、使用Mediainfo确认第75条视频是:课时075:云端制造 13.5 云端机器人.mp4的音频是48kHz的采样率:



 




3、使用千千静听v5.1.0提取其中的音频为44.1kHz:转换格式——转换选中的文件为其它格式



 编码格式→输出格式:Wave文件输出。(其它格式请自行测试验证了!貌似选:MP3编码器(lane v3.90.3) v1.02 也可以)
 

 


 




4、将WAVE文件转换为我们所需要的AAC文件:
预想,本来想将视频上传到youku,等优酷处理/压缩为AAC之后再下次之后再剥离音频!^_

百度搜索关键词:WAVE 转 AAC编码
找到一个在线转换的网站:
https://www.aconvert.com/cn/audio/wav-to-aac/

点击:选择文件,在你的电脑找到刚刚生成的WAV文件。(测试上传WAV文件也OK)



点击:开始上传



 

输出文件(支持迅雷下载。)

8a0fb-zp76l.aac

https://s19.aconvert.com/convert/p3r68-cdx67/8a0fb-zp76l.aac


 

操作:(这个不用管了,这个链接是告诉你怎么存储到Google Drive网盘等了!)

https://www.aconvert.com/cn/file.php?l=s19.aconvert.com/convert/p3r68-cdx67/8a0fb-zp76l.aac
 




5、48kHz的音频的mp4转44.1kHz的:
075:云端制造 13.5 云端机器人.mp4

使用:MKVToolNix更换一下音频:

将:075:云端制造 13.5 云端机器人.mp4拖入到MKVToolNix中,干掉音频,然后再将8a0fb-zp76l.aac拖入到MKVToolNix,选择:开始混流!
 



有:一个错误 信息:(有兴趣可以自行打开看看!)

--- 任务“混流到目录“C:\”中的文件“075:云端制造 13.5 云端机器人.mkv””(启动时间 2020-10-06 21:29:11 +08:00) 的输出消息 ---

mkvmerge v48.0.0 ('Fortress Around Your Heart') 64-bit

「C:\075:云端制造 13.5 云端机器人.mp4」: 使用「QuickTime/MP4」格式分离器。

「C:\8a0fb-zp76l.aac」: 使用「AAC」格式分离器。

「C:\075:云端制造 13.5 云端机器人.mp4」轨道 0: 使用「AVC/H.264」格式输出模块。

「C:\8a0fb-zp76l.aac」轨道 0: 使用「AAC」格式输出模块。

以写入模式打开文件「C:\075:云端制造 13.5 云端机器人.mkv」。

「C:\075:云端制造 13.5 云端机器人.mp4」轨道 0: 从 MPEG-4 layer 10 (AVC) 视频数据中提取宽高比信息并设置显示尺寸为 1920/1080。

正在写入 cue 条目 (索引)...

混流耗时 1 秒。



再次使用Mediainfo来确认音频是否修改完工了!





6、简单粗暴的做法就是直接将MKV的扩展名修改为mp4即可。
这里介绍使用ffmpeg的方法:(请严重注意:ffmpeg对中文的标点符号/目录支持不佳。)

https://jingyan.baidu.com/article/335530daf82a3b19cb41c339.html

ffmpeg将mkv转换成mp4

3、简单地实现mkv视频格式转换为mp4视频格式,直接输入如下命令:

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

 

input.mkv ---》指待转换的Mkv文件

output.mp4 ---》指转换输出的mp4文件

参考下图1所示,图2是转换输出的Mp4文件

 

Microsoft Windows [版本 6.1.7601]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

 

C:\Users\Administrator>cd D:\ffmpeg-20200628-4cfcfb3-win64-static\bin

 

C:\Users\Administrator>d:

 

D:\ffmpeg-20200628-4cfcfb3-win64-static\bin>dir

 驱动器 D 中的卷是 DATA

 卷的序列号是 0005-15C9

 

 D:\ffmpeg-20200628-4cfcfb3-win64-static\bin 的目录

 

2020/10/06 周二  21:39    <DIR>          .

2020/10/06 周二  21:39    <DIR>          ..

2020/10/06 周二  21:38        52,221,714 075:云端制造 13.5 云端机器人.mkv

2020/08/21 周五  15:41             3,654 20160908如何将多段ts文件合并成一个ts文

件.txt

2020/09/17 周四  23:28               308 Edit.000

2020/09/29 周二  18:42               357 Edit.001

2020/10/02 周五  23:57               357 Edit.002

2020/10/02 周五  21:24                 0 Edit.003

2020/06/29 周一  04:34        68,689,920 ffmpeg.exe

2020/06/29 周一  04:34        68,551,680 ffplay.exe

2020/06/29 周一  04:34        68,578,304 ffprobe.exe

2020/10/06 周二  21:38        52,221,714 input.mkv

2020/07/10 周五  22:32             5,738 !!!!Linux 下使用 ffmpeg 大批量合并

ts 文件, mp4切割文件为m3u8.txt

              11 个文件    310,273,746 字节

               2 个目录  3,446,874,112 可用字节

 

D:\ffmpeg-20200628-4cfcfb3-win64-static\bin>ffmpeg -i input.mkv -c:v copy -c:a c

opy output.mp4

ffmpeg version git-2020-06-28-4cfcfb3 Copyright (c) 2000-2020 the FFmpeg develop

ers

  built with gcc 9.3.1 (GCC) 20200621

  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfi

g --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libb

luray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enab

le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --e

nable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-lib

twolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --

enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --e

nable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo

-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom

--enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable

-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enabl

e-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf

  libavutil      56. 55.100 / 56. 55.100

  libavcodec     58. 93.100 / 58. 93.100

  libavformat    58. 47.100 / 58. 47.100

  libavdevice    58. 11.100 / 58. 11.100

  libavfilter     7. 86.100 /  7. 86.100

  libswscale      5.  8.100 /  5.  8.100

  libswresample   3.  8.100 /  3.  8.100

  libpostproc    55.  8.100 / 55.  8.100

Input #0, matroska,webm, from 'input.mkv':

  Metadata:

    encoder         : libebml v1.4.0 + libmatroska v1.6.0

    creation_time   : 2020-10-06T13:38:57.000000Z

  Duration: 00:15:23.74, start: 0.000000, bitrate: 452 kb/s

    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DA

R 16:9], 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)

    Metadata:

      BPS-eng         : 321546

      DURATION-eng    : 00:15:23.689000000

      NUMBER_OF_FRAMES-eng: 27683

      NUMBER_OF_BYTES-eng: 37126103

      _STATISTICS_WRITING_APP-eng: mkvmerge v48.0.0 ('Fortress Around Your Heart

') 64-bit

      _STATISTICS_WRITING_DATE_UTC-eng: 2020-10-06 13:38:57

      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

    Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp (default)

    Metadata:

      BPS-eng         : 128325

      DURATION-eng    : 00:15:23.736000000

      NUMBER_OF_FRAMES-eng: 39782

      NUMBER_OF_BYTES-eng: 14817336

      _STATISTICS_WRITING_APP-eng: mkvmerge v48.0.0 ('Fortress Around Your Heart

') 64-bit

      _STATISTICS_WRITING_DATE_UTC-eng: 2020-10-06 13:38:57

      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

Output #0, mp4, to 'output.mp4':

  Metadata:

    encoder         : Lavf58.47.100

    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1

920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 16k tbn, 1k tbc (defa

ult)

    Metadata:

      BPS-eng         : 321546

      DURATION-eng    : 00:15:23.689000000

      NUMBER_OF_FRAMES-eng: 27683

      NUMBER_OF_BYTES-eng: 37126103

      _STATISTICS_WRITING_APP-eng: mkvmerge v48.0.0 ('Fortress Around Your Heart

') 64-bit

      _STATISTICS_WRITING_DATE_UTC-eng: 2020-10-06 13:38:57

      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp (de

fault)

    Metadata:

      BPS-eng         : 128325

      DURATION-eng    : 00:15:23.736000000

      NUMBER_OF_FRAMES-eng: 39782

      NUMBER_OF_BYTES-eng: 14817336

      _STATISTICS_WRITING_APP-eng: mkvmerge v48.0.0 ('Fortress Around Your Heart

') 64-bit

      _STATISTICS_WRITING_DATE_UTC-eng: 2020-10-06 13:38:57

      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

Stream mapping:

  Stream #0:0 -> #0:0 (copy)

  Stream #0:1 -> #0:1 (copy)

Press [q] to stop, [?] for help

frame=27683 fps=0.0 q=-1.0 Lsize=   52040kB time=00:15:23.71 bitrate= 461.5kbits

/s speed=2.41e+03x

video:36256kB audio:14470kB subtitle:0kB other streams:0kB global headers:0kB mu

xing overhead: 2.590516%

 

D:\ffmpeg-20200628-4cfcfb3-win64-static\bin>



最后使用Mediainfo核实完成:





7、使用MKVToolNix通过追加合并模式来合并全部的视频即可!
 

48kHz 音频重采样为 44.1kHz 音频,需要进行插值和抽取处理。下面是一种可能的实现方法: 1.48kHz 音频数据读取到内存中。 2.音频数据进行低通滤波处理,以去除采样率高于 22.05kHz 的频率成分。 3. 将滤波后的音频数据按照比例插值,使采样率变为 48 * (441 / 480) = 44.1kHz4. 对插值后的音频数据进行抽取,使采样率恢复为 44.1kHz。 5. 将抽取后的音频数据写入存储介质。 下面是一个C++实现的示例代码: ```c++ // 48kHz音频重采样为44.1kHz void resample48To44(const int16_t* src, int16_t* dst, size_t numSamples) { // 低通滤波器 constexpr double kCutoffFreq = 0.95 * 22050; // 截止频率为22.05kHz const auto filterCoefficients = designLowpassFilter(kCutoffFreq, 48e3, 101); // 根据截止频率和采样率设计滤波器系数 std::vector<double> filterState(filterCoefficients.size() - 1, 0); // 比例插值 constexpr double kRatio = 44100.0 / 48000.0; std::vector<double> upsampled(numSamples * kRatio); for (size_t i = 0; i < numSamples * kRatio; i++) { double index = static_cast<double>(i) / kRatio; size_t leftIndex = static_cast<size_t>(std::floor(index)); size_t rightIndex = static_cast<size_t>(std::ceil(index)); double leftValue = src[leftIndex]; double rightValue = src[rightIndex]; double fraction = index - leftIndex; upsampled[i] = leftValue + fraction * (rightValue - leftValue); } // 低通滤波 std::vector<double> filtered(upsampled.size()); filterSamples(upsampled.data(), upsampled.size(), filterCoefficients.data(), filterCoefficients.size(), filterState.data(), filtered.data()); // 抽取 constexpr double kFactor = 48000.0 / 44100.0; for (size_t i = 0; i < numSamples; i++) { size_t index = static_cast<size_t>(i * kFactor); dst[i] = static_cast<int16_t>(filtered[index]); } } ``` 需要注意的是,在插值和抽取过程中可能会出现抖动和混叠等问题,可能会对音频质量产生影响。因此,需要选择合适的滤波器来最小化这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值