在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → ffmpeg+qt的简单播放器

ffmpeg+qt的简单播放器

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:35.39M
  • 下载次数:34
  • 浏览次数:180
  • 发布时间:2020-09-28
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.rar
  • 所需积分:2
 

实例介绍

【实例简介】
Windows环境下使用Ffmpeg+Qt Creator开发的简单播放器: (1)声音输出使用PortAudio; (2)视频显示使用SDL2; (3)具备音视频同步; (4)使用QT开发,便于Debug运行查看Ffmpeg各个结构体的变量是如何变化。
【实例截图】
【核心代码】
01-simple-player
└── 01-simple-player
├── 01-simple-player.pro
├── 01-simple-player.pro.user
├── audio.cpp
├── audio.h
├── av_clock.cpp
├── av_clock.h
├── avpackets_queue.cpp
├── avpackets_queue.h
├── dll
│   ├── avcodec-57.dll
│   ├── avdevice-57.dll
│   ├── avfilter-6.dll
│   ├── avformat-57.dll
│   ├── avutil-55.dll
│   ├── libgcc_s_dw2-1.dll
│   ├── libstdc++-6.dll
│   ├── libwinpthread-1.dll
│   ├── portaudio_x86.dll
│   ├── postproc-54.dll
│   ├── SDL2.dll
│   ├── source.200kbps.768x320.flv
│   ├── swresample-2.dll
│   └── swscale-4.dll
├── ffmpeg
│   ├── ffmpeg-3.3.3-win32-shared
│   │   ├── bin
│   │   │   ├── avcodec-57.dll
│   │   │   ├── avdevice-57.dll
│   │   │   ├── avfilter-6.dll
│   │   │   ├── avformat-57.dll
│   │   │   ├── avutil-55.dll
│   │   │   ├── ffmpeg.exe
│   │   │   ├── ffplay.exe
│   │   │   ├── ffprobe.exe
│   │   │   ├── postproc-54.dll
│   │   │   ├── swresample-2.dll
│   │   │   └── swscale-4.dll
│   │   ├── doc
│   │   │   ├── developer.html
│   │   │   ├── examples
│   │   │   │   ├── avio_dir_cmd.c
│   │   │   │   ├── avio_reading.c
│   │   │   │   ├── decode_audio.c
│   │   │   │   ├── decode_video.c
│   │   │   │   ├── demuxing_decoding.c
│   │   │   │   ├── encode_audio.c
│   │   │   │   ├── encode_video.c
│   │   │   │   ├── extract_mvs.c
│   │   │   │   ├── filter_audio.c
│   │   │   │   ├── filtering_audio.c
│   │   │   │   ├── filtering_video.c
│   │   │   │   ├── http_multiclient.c
│   │   │   │   ├── metadata.c
│   │   │   │   ├── muxing.c
│   │   │   │   ├── qsvdec.c
│   │   │   │   ├── README
│   │   │   │   ├── remuxing.c
│   │   │   │   ├── resampling_audio.c
│   │   │   │   ├── scaling_video.c
│   │   │   │   ├── transcode_aac.c
│   │   │   │   └── transcoding.c
│   │   │   ├── faq.html
│   │   │   ├── fate.html
│   │   │   ├── ffmpeg-all.html
│   │   │   ├── ffmpeg-bitstream-filters.html
│   │   │   ├── ffmpeg-codecs.html
│   │   │   ├── ffmpeg-devices.html
│   │   │   ├── ffmpeg-filters.html
│   │   │   ├── ffmpeg-formats.html
│   │   │   ├── ffmpeg.html
│   │   │   ├── ffmpeg-protocols.html
│   │   │   ├── ffmpeg-resampler.html
│   │   │   ├── ffmpeg-scaler.html
│   │   │   ├── ffmpeg-utils.html
│   │   │   ├── ffplay-all.html
│   │   │   ├── ffplay.html
│   │   │   ├── ffprobe-all.html
│   │   │   ├── ffprobe.html
│   │   │   ├── general.html
│   │   │   ├── git-howto.html
│   │   │   ├── libavcodec.html
│   │   │   ├── libavdevice.html
│   │   │   ├── libavfilter.html
│   │   │   ├── libavformat.html
│   │   │   ├── libavutil.html
│   │   │   ├── libswresample.html
│   │   │   ├── libswscale.html
│   │   │   ├── nut.html
│   │   │   └── platform.html
│   │   ├── licenses
│   │   │   ├── bzip2.txt
│   │   │   ├── fontconfig.txt
│   │   │   ├── freetype.txt
│   │   │   ├── frei0r.txt
│   │   │   ├── gme.txt
│   │   │   ├── gnutls.txt
│   │   │   ├── lame.txt
│   │   │   ├── libass.txt
│   │   │   ├── libbluray.txt
│   │   │   ├── libbs2b.txt
│   │   │   ├── libcaca.txt
│   │   │   ├── libgsm.txt
│   │   │   ├── libiconv.txt
│   │   │   ├── libilbc.txt
│   │   │   ├── libmfx.txt
│   │   │   ├── libmodplug.txt
│   │   │   ├── libtheora.txt
│   │   │   ├── libvorbis.txt
│   │   │   ├── libvpx.txt
│   │   │   ├── libwebp.txt
│   │   │   ├── opencore-amr.txt
│   │   │   ├── openh264.txt
│   │   │   ├── openjpeg.txt
│   │   │   ├── opus.txt
│   │   │   ├── rtmpdump.txt
│   │   │   ├── snappy.txt
│   │   │   ├── soxr.txt
│   │   │   ├── speex.txt
│   │   │   ├── twolame.txt
│   │   │   ├── vid.stab.txt
│   │   │   ├── vo-amrwbenc.txt
│   │   │   ├── wavpack.txt
│   │   │   ├── x264.txt
│   │   │   ├── x265.txt
│   │   │   ├── xavs.txt
│   │   │   ├── xvid.txt
│   │   │   ├── xz.txt
│   │   │   ├── zimg.txt
│   │   │   └── zlib.txt
│   │   ├── presets
│   │   │   ├── ffprobe.xsd
│   │   │   ├── libvpx-1080p50_60.ffpreset
│   │   │   ├── libvpx-1080p.ffpreset
│   │   │   ├── libvpx-360p.ffpreset
│   │   │   ├── libvpx-720p50_60.ffpreset
│   │   │   └── libvpx-720p.ffpreset
│   │   └── README.txt
│   ├── ffmpeg_common.cpp
│   ├── ffmpeg_common.h
│   ├── ffmpeg_decoder.cpp
│   ├── ffmpeg_decoder.h
│   ├── ffmpeg_demuxer.cpp
│   ├── ffmpeg_demuxer.h
│   ├── ffmpeg.pri
│   ├── format_context.cpp
│   ├── format_context.h
│   ├── include
│   │   ├── libavcodec
│   │   │   ├── avcodec.h
│   │   │   ├── avdct.h
│   │   │   ├── avfft.h
│   │   │   ├── d3d11va.h
│   │   │   ├── dirac.h
│   │   │   ├── dv_profile.h
│   │   │   ├── dxva2.h
│   │   │   ├── jni.h
│   │   │   ├── mediacodec.h
│   │   │   ├── qsv.h
│   │   │   ├── vaapi.h
│   │   │   ├── vda.h
│   │   │   ├── vdpau.h
│   │   │   ├── version.h
│   │   │   ├── videotoolbox.h
│   │   │   ├── vorbis_parser.h
│   │   │   └── xvmc.h
│   │   ├── libavdevice
│   │   │   ├── avdevice.h
│   │   │   └── version.h
│   │   ├── libavfilter
│   │   │   ├── avfiltergraph.h
│   │   │   ├── avfilter.h
│   │   │   ├── buffersink.h
│   │   │   ├── buffersrc.h
│   │   │   └── version.h
│   │   ├── libavformat
│   │   │   ├── avformat.h
│   │   │   ├── avio.h
│   │   │   └── version.h
│   │   ├── libavutil
│   │   │   ├── adler32.h
│   │   │   ├── aes_ctr.h
│   │   │   ├── aes.h
│   │   │   ├── attributes.h
│   │   │   ├── audio_fifo.h
│   │   │   ├── avassert.h
│   │   │   ├── avconfig.h
│   │   │   ├── avstring.h
│   │   │   ├── avutil.h
│   │   │   ├── base64.h
│   │   │   ├── blowfish.h
│   │   │   ├── bprint.h
│   │   │   ├── bswap.h
│   │   │   ├── buffer.h
│   │   │   ├── camellia.h
│   │   │   ├── cast5.h
│   │   │   ├── channel_layout.h
│   │   │   ├── common.h
│   │   │   ├── cpu.h
│   │   │   ├── crc.h
│   │   │   ├── des.h
│   │   │   ├── dict.h
│   │   │   ├── display.h
│   │   │   ├── downmix_info.h
│   │   │   ├── error.h
│   │   │   ├── eval.h
│   │   │   ├── ffversion.h
│   │   │   ├── fifo.h
│   │   │   ├── file.h
│   │   │   ├── frame.h
│   │   │   ├── hash.h
│   │   │   ├── hmac.h
│   │   │   ├── hwcontext_cuda.h
│   │   │   ├── hwcontext_dxva2.h
│   │   │   ├── hwcontext.h
│   │   │   ├── hwcontext_qsv.h
│   │   │   ├── hwcontext_vaapi.h
│   │   │   ├── hwcontext_vdpau.h
│   │   │   ├── imgutils.h
│   │   │   ├── intfloat.h
│   │   │   ├── intreadwrite.h
│   │   │   ├── lfg.h
│   │   │   ├── log.h
│   │   │   ├── lzo.h
│   │   │   ├── macros.h
│   │   │   ├── mastering_display_metadata.h
│   │   │   ├── mathematics.h
│   │   │   ├── md5.h
│   │   │   ├── mem.h
│   │   │   ├── motion_vector.h
│   │   │   ├── murmur3.h
│   │   │   ├── opt.h
│   │   │   ├── parseutils.h
│   │   │   ├── pixdesc.h
│   │   │   ├── pixelutils.h
│   │   │   ├── pixfmt.h
│   │   │   ├── random_seed.h
│   │   │   ├── rational.h
│   │   │   ├── rc4.h
│   │   │   ├── replaygain.h
│   │   │   ├── ripemd.h
│   │   │   ├── samplefmt.h
│   │   │   ├── sha512.h
│   │   │   ├── sha.h
│   │   │   ├── spherical.h
│   │   │   ├── stereo3d.h
│   │   │   ├── tea.h
│   │   │   ├── threadmessage.h
│   │   │   ├── timecode.h
│   │   │   ├── time.h
│   │   │   ├── timestamp.h
│   │   │   ├── tree.h
│   │   │   ├── twofish.h
│   │   │   ├── version.h
│   │   │   └── xtea.h
│   │   ├── libpostproc
│   │   │   ├── postprocess.h
│   │   │   └── version.h
│   │   ├── libswresample
│   │   │   ├── swresample.h
│   │   │   └── version.h
│   │   └── libswscale
│   │   ├── swscale.h
│   │   └── version.h
│   └── lib
│   ├── avcodec-57.def
│   ├── avcodec.lib
│   ├── avdevice-57.def
│   ├── avdevice.lib
│   ├── avfilter-6.def
│   ├── avfilter.lib
│   ├── avformat-57.def
│   ├── avformat.lib
│   ├── avutil-55.def
│   ├── avutil.lib
│   ├── postproc-54.def
│   ├── postproc.lib
│   ├── swresample-2.def
│   ├── swresample.lib
│   ├── swscale-4.def
│   └── swscale.lib
├── log.cpp
├── log.h
├── main.cpp
├── portaudio
│   ├── include
│   │   └── portaudio.h
│   └── lib
│   ├── portaudio_x86.dll
│   └── portaudio_x86.lib
├── SDL2
│   ├── include
│   │   ├── begin_code.h
│   │   ├── close_code.h
│   │   ├── SDL_assert.h
│   │   ├── SDL_atomic.h
│   │   ├── SDL_audio.h
│   │   ├── SDL_bits.h
│   │   ├── SDL_blendmode.h
│   │   ├── SDL_clipboard.h
│   │   ├── SDL_config.h
│   │   ├── SDL_cpuinfo.h
│   │   ├── SDL_endian.h
│   │   ├── SDL_error.h
│   │   ├── SDL_events.h
│   │   ├── SDL_filesystem.h
│   │   ├── SDL_gamecontroller.h
│   │   ├── SDL_gesture.h
│   │   ├── SDL.h
│   │   ├── SDL_haptic.h
│   │   ├── SDL_hints.h
│   │   ├── SDL_joystick.h
│   │   ├── SDL_keyboard.h
│   │   ├── SDL_keycode.h
│   │   ├── SDL_loadso.h
│   │   ├── SDL_log.h
│   │   ├── SDL_main.h
│   │   ├── SDL_messagebox.h
│   │   ├── SDL_mouse.h
│   │   ├── SDL_mutex.h
│   │   ├── SDL_name.h
│   │   ├── SDL_opengles2.h
│   │   ├── SDL_opengles.h
│   │   ├── SDL_opengl.h
│   │   ├── SDL_pixels.h
│   │   ├── SDL_platform.h
│   │   ├── SDL_power.h
│   │   ├── SDL_quit.h
│   │   ├── SDL_rect.h
│   │   ├── SDL_render.h
│   │   ├── SDL_revision.h
│   │   ├── SDL_rwops.h
│   │   ├── SDL_scancode.h
│   │   ├── SDL_shape.h
│   │   ├── SDL_stdinc.h
│   │   ├── SDL_surface.h
│   │   ├── SDL_system.h
│   │   ├── SDL_syswm.h
│   │   ├── SDL_test_assert.h
│   │   ├── SDL_test_common.h
│   │   ├── SDL_test_compare.h
│   │   ├── SDL_test_crc32.h
│   │   ├── SDL_test_font.h
│   │   ├── SDL_test_fuzzer.h
│   │   ├── SDL_test.h
│   │   ├── SDL_test_harness.h
│   │   ├── SDL_test_images.h
│   │   ├── SDL_test_log.h
│   │   ├── SDL_test_md5.h
│   │   ├── SDL_test_random.h
│   │   ├── SDL_thread.h
│   │   ├── SDL_timer.h
│   │   ├── SDL_touch.h
│   │   ├── SDL_types.h
│   │   ├── SDL_version.h
│   │   └── SDL_video.h
│   └── lib
│   ├── x64
│   │   ├── SDL2.dll
│   │   ├── SDL2.lib
│   │   ├── SDL2main.lib
│   │   └── SDL2test.lib
│   └── x86
│   ├── SDL2.dll
│   ├── SDL2.lib
│   ├── SDL2main.lib
│   └── SDL2test.lib
├── video.cpp
└── video.h

27 directories, 342 files

标签:

实例下载地址

ffmpeg+qt的简单播放器

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 shushikuan 发表于: 2021-02-19 15:23 12
没有界面的例子都是耍流氓。

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警