实例介绍
【实例简介】
自己做的FFPLAY移植到VC下的开源工程:ffplay for MFC。 本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下。并且使用MFC做了一套简单的界面。它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等功能。通过本程序可以学习视频播放器原理,以及SDL和Windows消息机制等。代码中包含了比较详细的注释。 1.1版(2014.7.10) * 更换了部分界面 * 原工程支持Unicode编码 * 修复了Release下的
【实例截图】
【核心代码】
ffplaymfc
`-- ffplaymfc
|-- ChangeLog
|-- ffplaymfc
| |-- AudiodecodeDlg.cpp
| |-- AudiodecodeDlg.h
| |-- ReadMe.txt
| |-- SDL.dll
| |-- SysinfoDlg.cpp
| |-- SysinfoDlg.h
| |-- VideodecodeDlg.cpp
| |-- VideodecodeDlg.h
| |-- avcodec-55.dll
| |-- avdevice-55.dll
| |-- avfilter-4.dll
| |-- avformat-55.dll
| |-- avutil-52.dll
| |-- cmdutils.cpp
| |-- cmdutils.h
| |-- cmdutils_common_opts.h
| |-- config.h
| |-- ffplaycore.cpp
| |-- ffplaycore.h
| |-- ffplaymfc.aps
| |-- ffplaymfc.cpp
| |-- ffplaymfc.h
| |-- ffplaymfc.rc
| |-- ffplaymfc.vcxproj
| |-- ffplaymfc.vcxproj.filters
| |-- ffplaymfc.vcxproj.user
| |-- ffplaymfcDlg.cpp
| |-- ffplaymfcDlg.h
| |-- include
| | |-- SDL
| | | |-- SDL.h
| | | |-- SDL_active.h
| | | |-- SDL_audio.h
| | | |-- SDL_byteorder.h
| | | |-- SDL_cdrom.h
| | | |-- SDL_config.h
| | | |-- SDL_config_dreamcast.h
| | | |-- SDL_config_macos.h
| | | |-- SDL_config_macosx.h
| | | |-- SDL_config_minimal.h
| | | |-- SDL_config_nds.h
| | | |-- SDL_config_os2.h
| | | |-- SDL_config_symbian.h
| | | |-- SDL_config_win32.h
| | | |-- SDL_copying.h
| | | |-- SDL_cpuinfo.h
| | | |-- SDL_endian.h
| | | |-- SDL_error.h
| | | |-- SDL_events.h
| | | |-- SDL_getenv.h
| | | |-- SDL_joystick.h
| | | |-- SDL_keyboard.h
| | | |-- SDL_keysym.h
| | | |-- SDL_loadso.h
| | | |-- SDL_main.h
| | | |-- SDL_mouse.h
| | | |-- SDL_mutex.h
| | | |-- SDL_name.h
| | | |-- SDL_opengl.h
| | | |-- SDL_platform.h
| | | |-- SDL_quit.h
| | | |-- SDL_rwops.h
| | | |-- SDL_stdinc.h
| | | |-- SDL_syswm.h
| | | |-- SDL_thread.h
| | | |-- SDL_timer.h
| | | |-- SDL_types.h
| | | |-- SDL_version.h
| | | |-- SDL_video.h
| | | |-- begin_code.h
| | | `-- close_code.h
| | |-- _mingw.h
| | |-- compat
| | | |-- getopt.c
| | | |-- msvcrt
| | | | |-- snprintf.c
| | | | `-- snprintf.h
| | | |-- strtod.c
| | | `-- va_copy.h
| | |-- inttypes.h
| | |-- libavcodec
| | | |-- avcodec.h
| | | |-- avfft.h
| | | |-- dxva2.h
| | | |-- old_codec_ids.h
| | | |-- vaapi.h
| | | |-- vda.h
| | | |-- vdpau.h
| | | |-- version.h
| | | `-- xvmc.h
| | |-- libavdevice
| | | |-- avdevice.h
| | | `-- version.h
| | |-- libavfilter
| | | |-- asrc_abuffer.h
| | | |-- avcodec.h
| | | |-- avfilter.h
| | | |-- avfiltergraph.h
| | | |-- buffersink.h
| | | |-- buffersrc.h
| | | `-- version.h
| | |-- libavformat
| | | |-- avformat.h
| | | |-- avio.h
| | | `-- version.h
| | |-- libavresample
| | | |-- Makefile
| | | |-- arm
| | | | |-- Makefile
| | | | |-- audio_convert_init.c
| | | | `-- audio_convert_neon.S
| | | |-- audio_convert.c
| | | |-- audio_convert.h
| | | |-- audio_data.c
| | | |-- audio_data.h
| | | |-- audio_mix.c
| | | |-- audio_mix.h
| | | |-- audio_mix_matrix.c
| | | |-- avresample-test.c
| | | |-- avresample.h
| | | |-- internal.h
| | | |-- libavresample.v
| | | |-- options.c
| | | |-- resample.c
| | | |-- resample.h
| | | |-- resample_template.c
| | | |-- utils.c
| | | |-- version.h
| | | `-- x86
| | | |-- Makefile
| | | |-- audio_convert.asm
| | | |-- audio_convert_init.c
| | | |-- audio_mix.asm
| | | |-- audio_mix_init.c
| | | `-- util.asm
| | |-- libavutil
| | | |-- adler32.h
| | | |-- aes.h
| | | |-- attributes.h
| | | |-- audio_fifo.h
| | | |-- audioconvert.h
| | | |-- avassert.h
| | | |-- avconfig.h
| | | |-- avstring.h
| | | |-- avutil.h
| | | |-- base64.h
| | | |-- blowfish.h
| | | |-- bprint.h
| | | |-- bswap.h
| | | |-- buffer.h
| | | |-- channel_layout.h
| | | |-- colorspace.h
| | | |-- common.h
| | | |-- cpu.h
| | | |-- crc.h
| | | |-- dict.h
| | | |-- downmix_info.h
| | | |-- error.h
| | | |-- eval.h
| | | |-- ffversion.h
| | | |-- fifo.h
| | | |-- file.h
| | | |-- frame.h
| | | |-- hmac.h
| | | |-- imgutils.h
| | | |-- intfloat.h
| | | |-- intfloat_readwrite.h
| | | |-- intreadwrite.h
| | | |-- lfg.h
| | | |-- log.h
| | | |-- lzo.h
| | | |-- macros.h
| | | |-- mathematics.h
| | | |-- md5.h
| | | |-- mem.h
| | | |-- murmur3.h
| | | |-- old_pix_fmts.h
| | | |-- opt.h
| | | |-- parseutils.h
| | | |-- pixdesc.h
| | | |-- pixfmt.h
| | | |-- random_seed.h
| | | |-- rational.h
| | | |-- replaygain.h
| | | |-- ripemd.h
| | | |-- samplefmt.h
| | | |-- sha.h
| | | |-- sha512.h
| | | |-- stereo3d.h
| | | |-- time.h
| | | |-- timecode.h
| | | |-- timestamp.h
| | | |-- version.h
| | | `-- xtea.h
| | |-- libpostproc
| | | |-- postprocess.h
| | | `-- version.h
| | |-- libswresample
| | | |-- swresample.h
| | | `-- version.h
| | |-- libswscale
| | | |-- swscale.h
| | | `-- version.h
| | `-- stdint.h
| |-- lib
| | |-- SDL.lib
| | |-- SDLmain.lib
| | |-- avcodec.lib
| | |-- avdevice.lib
| | |-- avfilter.lib
| | |-- avformat.lib
| | |-- avutil.lib
| | |-- postproc.lib
| | |-- swresample.lib
| | `-- swscale.lib
| |-- postproc-52.dll
| |-- res
| | |-- ffplaymfc(en).bmp
| | |-- ffplaymfc.bmp
| | |-- ffplaymfc.ico
| | |-- ffplaymfc.rc2
| | `-- ffplaymfc_ico.png
| |-- resource.h
| |-- stdafx.cpp
| |-- stdafx.h
| |-- swresample-0.dll
| |-- swscale-2.dll
| |-- targetver.h
| `-- 问题.txt
|-- ffplaymfc.sln
|-- ffplaymfc.suo
`-- readme.txt
19 directories, 216 files
自己做的FFPLAY移植到VC下的开源工程:ffplay for MFC。 本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下。并且使用MFC做了一套简单的界面。它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等功能。通过本程序可以学习视频播放器原理,以及SDL和Windows消息机制等。代码中包含了比较详细的注释。 1.1版(2014.7.10) * 更换了部分界面 * 原工程支持Unicode编码 * 修复了Release下的
【实例截图】
【核心代码】
ffplaymfc
`-- ffplaymfc
|-- ChangeLog
|-- ffplaymfc
| |-- AudiodecodeDlg.cpp
| |-- AudiodecodeDlg.h
| |-- ReadMe.txt
| |-- SDL.dll
| |-- SysinfoDlg.cpp
| |-- SysinfoDlg.h
| |-- VideodecodeDlg.cpp
| |-- VideodecodeDlg.h
| |-- avcodec-55.dll
| |-- avdevice-55.dll
| |-- avfilter-4.dll
| |-- avformat-55.dll
| |-- avutil-52.dll
| |-- cmdutils.cpp
| |-- cmdutils.h
| |-- cmdutils_common_opts.h
| |-- config.h
| |-- ffplaycore.cpp
| |-- ffplaycore.h
| |-- ffplaymfc.aps
| |-- ffplaymfc.cpp
| |-- ffplaymfc.h
| |-- ffplaymfc.rc
| |-- ffplaymfc.vcxproj
| |-- ffplaymfc.vcxproj.filters
| |-- ffplaymfc.vcxproj.user
| |-- ffplaymfcDlg.cpp
| |-- ffplaymfcDlg.h
| |-- include
| | |-- SDL
| | | |-- SDL.h
| | | |-- SDL_active.h
| | | |-- SDL_audio.h
| | | |-- SDL_byteorder.h
| | | |-- SDL_cdrom.h
| | | |-- SDL_config.h
| | | |-- SDL_config_dreamcast.h
| | | |-- SDL_config_macos.h
| | | |-- SDL_config_macosx.h
| | | |-- SDL_config_minimal.h
| | | |-- SDL_config_nds.h
| | | |-- SDL_config_os2.h
| | | |-- SDL_config_symbian.h
| | | |-- SDL_config_win32.h
| | | |-- SDL_copying.h
| | | |-- SDL_cpuinfo.h
| | | |-- SDL_endian.h
| | | |-- SDL_error.h
| | | |-- SDL_events.h
| | | |-- SDL_getenv.h
| | | |-- SDL_joystick.h
| | | |-- SDL_keyboard.h
| | | |-- SDL_keysym.h
| | | |-- SDL_loadso.h
| | | |-- SDL_main.h
| | | |-- SDL_mouse.h
| | | |-- SDL_mutex.h
| | | |-- SDL_name.h
| | | |-- SDL_opengl.h
| | | |-- SDL_platform.h
| | | |-- SDL_quit.h
| | | |-- SDL_rwops.h
| | | |-- SDL_stdinc.h
| | | |-- SDL_syswm.h
| | | |-- SDL_thread.h
| | | |-- SDL_timer.h
| | | |-- SDL_types.h
| | | |-- SDL_version.h
| | | |-- SDL_video.h
| | | |-- begin_code.h
| | | `-- close_code.h
| | |-- _mingw.h
| | |-- compat
| | | |-- getopt.c
| | | |-- msvcrt
| | | | |-- snprintf.c
| | | | `-- snprintf.h
| | | |-- strtod.c
| | | `-- va_copy.h
| | |-- inttypes.h
| | |-- libavcodec
| | | |-- avcodec.h
| | | |-- avfft.h
| | | |-- dxva2.h
| | | |-- old_codec_ids.h
| | | |-- vaapi.h
| | | |-- vda.h
| | | |-- vdpau.h
| | | |-- version.h
| | | `-- xvmc.h
| | |-- libavdevice
| | | |-- avdevice.h
| | | `-- version.h
| | |-- libavfilter
| | | |-- asrc_abuffer.h
| | | |-- avcodec.h
| | | |-- avfilter.h
| | | |-- avfiltergraph.h
| | | |-- buffersink.h
| | | |-- buffersrc.h
| | | `-- version.h
| | |-- libavformat
| | | |-- avformat.h
| | | |-- avio.h
| | | `-- version.h
| | |-- libavresample
| | | |-- Makefile
| | | |-- arm
| | | | |-- Makefile
| | | | |-- audio_convert_init.c
| | | | `-- audio_convert_neon.S
| | | |-- audio_convert.c
| | | |-- audio_convert.h
| | | |-- audio_data.c
| | | |-- audio_data.h
| | | |-- audio_mix.c
| | | |-- audio_mix.h
| | | |-- audio_mix_matrix.c
| | | |-- avresample-test.c
| | | |-- avresample.h
| | | |-- internal.h
| | | |-- libavresample.v
| | | |-- options.c
| | | |-- resample.c
| | | |-- resample.h
| | | |-- resample_template.c
| | | |-- utils.c
| | | |-- version.h
| | | `-- x86
| | | |-- Makefile
| | | |-- audio_convert.asm
| | | |-- audio_convert_init.c
| | | |-- audio_mix.asm
| | | |-- audio_mix_init.c
| | | `-- util.asm
| | |-- libavutil
| | | |-- adler32.h
| | | |-- aes.h
| | | |-- attributes.h
| | | |-- audio_fifo.h
| | | |-- audioconvert.h
| | | |-- avassert.h
| | | |-- avconfig.h
| | | |-- avstring.h
| | | |-- avutil.h
| | | |-- base64.h
| | | |-- blowfish.h
| | | |-- bprint.h
| | | |-- bswap.h
| | | |-- buffer.h
| | | |-- channel_layout.h
| | | |-- colorspace.h
| | | |-- common.h
| | | |-- cpu.h
| | | |-- crc.h
| | | |-- dict.h
| | | |-- downmix_info.h
| | | |-- error.h
| | | |-- eval.h
| | | |-- ffversion.h
| | | |-- fifo.h
| | | |-- file.h
| | | |-- frame.h
| | | |-- hmac.h
| | | |-- imgutils.h
| | | |-- intfloat.h
| | | |-- intfloat_readwrite.h
| | | |-- intreadwrite.h
| | | |-- lfg.h
| | | |-- log.h
| | | |-- lzo.h
| | | |-- macros.h
| | | |-- mathematics.h
| | | |-- md5.h
| | | |-- mem.h
| | | |-- murmur3.h
| | | |-- old_pix_fmts.h
| | | |-- opt.h
| | | |-- parseutils.h
| | | |-- pixdesc.h
| | | |-- pixfmt.h
| | | |-- random_seed.h
| | | |-- rational.h
| | | |-- replaygain.h
| | | |-- ripemd.h
| | | |-- samplefmt.h
| | | |-- sha.h
| | | |-- sha512.h
| | | |-- stereo3d.h
| | | |-- time.h
| | | |-- timecode.h
| | | |-- timestamp.h
| | | |-- version.h
| | | `-- xtea.h
| | |-- libpostproc
| | | |-- postprocess.h
| | | `-- version.h
| | |-- libswresample
| | | |-- swresample.h
| | | `-- version.h
| | |-- libswscale
| | | |-- swscale.h
| | | `-- version.h
| | `-- stdint.h
| |-- lib
| | |-- SDL.lib
| | |-- SDLmain.lib
| | |-- avcodec.lib
| | |-- avdevice.lib
| | |-- avfilter.lib
| | |-- avformat.lib
| | |-- avutil.lib
| | |-- postproc.lib
| | |-- swresample.lib
| | `-- swscale.lib
| |-- postproc-52.dll
| |-- res
| | |-- ffplaymfc(en).bmp
| | |-- ffplaymfc.bmp
| | |-- ffplaymfc.ico
| | |-- ffplaymfc.rc2
| | `-- ffplaymfc_ico.png
| |-- resource.h
| |-- stdafx.cpp
| |-- stdafx.h
| |-- swresample-0.dll
| |-- swscale-2.dll
| |-- targetver.h
| `-- 问题.txt
|-- ffplaymfc.sln
|-- ffplaymfc.suo
`-- readme.txt
19 directories, 216 files
标签:
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论