软件开发技术基础 第4版 课件 6-3 音频视频处理.pptx

软件开发技术基础 第4版 课件 6-3 音频视频处理.pptx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

音频视频处理库

音频录制与回放利用pyaudio进行录音,关键步骤有三步:①建立音频流对象;②建立wav文件;③循环将音频流中的数据写入wav文件。建立音频流对象需使用pyAudio类的open方法,其参数包括采样格式(format)、声道数(channels)、采样率(rate)、数据块大小(frames_per_buffer)、是否为输入流(input)、是否为输出流(output)等。录音时将参数input设为True,播音时将参数output设为True。录音文件可利用wave模块的open方法建立。为了正确存储音频,新建的wav文件的参数(采样格式、声道数等)应该和音频流对应的参数保持一致西安交通大学计算机教学实验中心2

音频编辑音频剪辑可以使用pydub库实现。该模块自身只支持wav格式的文件处理。如果想处理其他格式的音频,那么需要在本地安装FFmpeg库。31.打开音频文件打开音频文件要使用pydub的AudioSegment类,下面是打开不同格式音频文件的方法:frompydubimportAudioSegmentmusic=AudioSegment.from_wav(东方红.wav) #读取wav文件music=AudioSegment.from_mp3(东方红.mp3) #读取mp3文件music=AudioSegment.from_ogg(东方红.ogg) #读取ogg文件music=AudioSegment.from_flv(东方红.flv) #读取flv文件的音频

音频编辑42.音频剪切打开音频文件后,就可以进行剪切、拼接等操作。例如:clip=music[:20*1000] #截取前20秒clip=music[-20000:] #截取后20秒clip=music[20*1000:40*1000] #从第20秒截取到第40秒以上括号内的时间都要转换成以毫秒为单位。3.音频拼接两段音频的拼接用加号就可以实现,例如:clip1=music[:20*1000] #裁剪前20秒音频clip2=music[-20*1000:] #裁剪后20秒音频clip=clip1+clip2 #拼接音频

音频编辑54.调节音量音量的增减只需要用音频对象加一个常数即可:music=music-5 #音量减少5dBmusic=music+5 #音量增加5dB5.渐入渐出效果在连续演奏多段音乐时,交叉渐入渐出(淡入、淡出)是两段音乐之间常见的过渡方式。假如有music1和music2两段音频,有6秒的交叉过度:music3=music1.append(music2,crossfade=6000)

视频回放6ffpyplayer库共有Player、Writer、Images、Tools四个模块Player模块用于音视频播放Writer模块用于生成视频文件(不含音频)Images模块用于图像格式转换Tools模块用于获取编码信息、编码转换等操作。Player模块只有一个MediaPlayer类,它移植了FFmpeg中的播放器FFplay的大多数功能。该类使用get_frame()函数获取视频中的一帧图像,同时利用SDL自动播放音频。

视频回放7视频播放器使用了ffpyplayer库的MediaPlayer类、Image?类,pillow库的Image类、ImageTk类。其中ImageTk可以从pillow图像创建适合Tkinter使用的位图图像。最终图像在Tkinter的Label上显示。具体步骤如下:①利用MediaPlayer类的get_frame()方法获取每一帧图像;②利用ffpyplayer的Image类方法to_memoryview()将图像转换成内存中的数组;③利用pillow的Image类方法fromarray()将得到的数组转换成pillow图像;④利用pillow的ImageTk类方法将pillow图像转换成适合Tkinter使用的图像,并在Label上显示该图像。

视频回放8fromtkinterimport*importnumpyasnpfromPILimportImage,ImageTkfromffpyplayer.playerimportMediaPlayerval=player=NonedefPlayVideo():globalvalframe,val=player.get_frame()whileval!=eof:ifframeisnotNone:

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档