工具提取MP4中的音视频

工具提取MP4中的音视频


版权声明:本文为博主原创文章,若需转载请注明出处。

使用工具:
1)http://www.h264encoder.com/ h264视频转换工具
2)http://ffmpeg.org/ ffmpeg
3)Cool Edit Pro
4)VLC

由于想要测试RTCP,所以要一段比较长的音(PCM)视频(H264)文件以供测试。
测试视频属性如下:
工具提取MP4中的音视频_第1张图片

视频

可以发现编码为AVC1 ,也即为H264 ,可以使用ffmpeg工具直接转换。
于是:

ffmpeg -i test1_h264.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test1.264

然而经过转换的文件并不能使用VLC打开 ,怀疑ffmpeg转换问题,所以先强制把原文件转成原视频文件强制转一遍再说(实际上转换前后AUD帧有所区别,对整个文件并无太大影响,但是这一步对于其余非AVC1编码的MP4视频是有所影响的):
工具提取MP4中的音视频_第2张图片

再执行转换命令,结果还是不能用VLC播放,
查看vlc无法播放的警告:can’t not find start code ,找不到H264文件的开始码,于是查看转换后的H264文件:

工具提取MP4中的音视频_第3张图片

好嘛,前面一堆补充帧,于是把前面的数据都删除了,从sps/pps帧开始截取,0x67就是sps ,前面一共有0x2c0+1 也就是704+1个数据
在这里插入图片描述
直接截取我们需要的数据:
dd if=test1.h264 of=test1_out.h264 bs=705 skip=1
当然也可以使用
dd if=test1.h264 of=test1_out.h264 bs=1 skip=705
两者区别读者可以自行理解。
删除完后,H264视频能够成功使用VLC播放了。

音频

ffmpeg -formats 查看不支持aac的编码,只支持解码,那只能换一个工具了。
于是曲线救国,先使用VLC本身自带的格式转换工具,转换成44.1K双通道的MP3
媒体->转换/保存->添加文件,转换保存->选择MP3格式。
工具提取MP4中的音视频_第4张图片

接着使用Cool Edit Pro自带的转换
工具提取MP4中的音视频_第5张图片

file -> batch file convert
注:使用其转换时要注意相应的音频频率通道数目等相应参数要选择正确

工具提取MP4中的音视频_第6张图片

OK,大功告成 ,PCM和H264都取出来了,可以继续测试了 ?

你可能感兴趣的:(工作)