下载资源后端资源详情
simplest_ffmpeg_mem_handler_1.1.zip
大小:35.89MB
价格:48积分
下载量:0
评分:
5.0
上传者:leixiaohua1020
更新日期:2025-09-22

最简单的基于FFmpeg的内存读写的例子 1.1

资源文件列表(大概)

文件名
大小
.gitignore
29B
ReadMe.txt
642B
simplest_ffmpeg_mem_handler.sln
1.41KB
simplest_ffmpeg_mem_handler.suo
21KB
simplest_ffmpeg_mem_player/
-
simplest_ffmpeg_mem_player/.gitignore
67B
simplest_ffmpeg_mem_player/ReadMe.txt
498B
simplest_ffmpeg_mem_player/SDL.dll
296.5KB
simplest_ffmpeg_mem_player/avcodec-55.dll
18.06MB
simplest_ffmpeg_mem_player/avdevice-55.dll
1.28MB
simplest_ffmpeg_mem_player/avfilter-4.dll
1.94MB
simplest_ffmpeg_mem_player/avformat-55.dll
5.1MB
simplest_ffmpeg_mem_player/avutil-52.dll
408.5KB
simplest_ffmpeg_mem_player/compile_cl.bat
698B
simplest_ffmpeg_mem_player/compile_gcc.sh
482B
simplest_ffmpeg_mem_player/compile_gcc_mac.sh
499B
simplest_ffmpeg_mem_player/compile_mingw.sh
505B
simplest_ffmpeg_mem_player/cuc60anniversary_start.mkv
3.79MB
simplest_ffmpeg_mem_player/include/
-
simplest_ffmpeg_mem_player/include/SDL/
-
simplest_ffmpeg_mem_player/include/SDL/SDL.h
3.16KB
simplest_ffmpeg_mem_player/include/SDL/SDL_active.h
1.89KB
simplest_ffmpeg_mem_player/include/SDL/SDL_audio.h
10.95KB
simplest_ffmpeg_mem_player/include/SDL/SDL_byteorder.h
986B
simplest_ffmpeg_mem_player/include/SDL/SDL_cdrom.h
5.91KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config.h
1.44KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_dreamcast.h
2.74KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_macos.h
2.74KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_macosx.h
4.09KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_minimal.h
1.94KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_nds.h
2.91KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_os2.h
3.55KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_symbian.h
3.03KB
simplest_ffmpeg_mem_player/include/SDL/SDL_config_win32.h
4.47KB
simplest_ffmpeg_mem_player/include/SDL/SDL_copying.h
869B
simplest_ffmpeg_mem_player/include/SDL/SDL_cpuinfo.h
2.17KB
simplest_ffmpeg_mem_player/include/SDL/SDL_endian.h
5.91KB
simplest_ffmpeg_mem_player/include/SDL/SDL_error.h
1.83KB
simplest_ffmpeg_mem_player/include/SDL/SDL_events.h
12.74KB
simplest_ffmpeg_mem_player/include/SDL/SDL_getenv.h
979B
simplest_ffmpeg_mem_player/include/SDL/SDL_joystick.h
5.4KB
simplest_ffmpeg_mem_player/include/SDL/SDL_keyboard.h
4KB
simplest_ffmpeg_mem_player/include/SDL/SDL_keysym.h
7.32KB
simplest_ffmpeg_mem_player/include/SDL/SDL_loadso.h
2.67KB
simplest_ffmpeg_mem_player/include/SDL/SDL_main.h
2.8KB
simplest_ffmpeg_mem_player/include/SDL/SDL_mouse.h
4.64KB
simplest_ffmpeg_mem_player/include/SDL/SDL_mutex.h
5.72KB
simplest_ffmpeg_mem_player/include/SDL/SDL_name.h
183B
simplest_ffmpeg_mem_player/include/SDL/SDL_opengl.h
328.66KB
simplest_ffmpeg_mem_player/include/SDL/SDL_platform.h
2.64KB
simplest_ffmpeg_mem_player/include/SDL/SDL_quit.h
1.96KB
simplest_ffmpeg_mem_player/include/SDL/SDL_rwops.h
4.84KB
simplest_ffmpeg_mem_player/include/SDL/SDL_stdinc.h
16.09KB
simplest_ffmpeg_mem_player/include/SDL/SDL_syswm.h
6.17KB
simplest_ffmpeg_mem_player/include/SDL/SDL_thread.h
4.14KB
simplest_ffmpeg_mem_player/include/SDL/SDL_timer.h
4.42KB
simplest_ffmpeg_mem_player/include/SDL/SDL_types.h
979B
simplest_ffmpeg_mem_player/include/SDL/SDL_version.h
2.58KB
simplest_ffmpeg_mem_player/include/SDL/SDL_video.h
37.13KB
simplest_ffmpeg_mem_player/include/SDL/begin_code.h
5.11KB
simplest_ffmpeg_mem_player/include/SDL/close_code.h
1.45KB
simplest_ffmpeg_mem_player/include/_mingw.h
7.79KB
simplest_ffmpeg_mem_player/include/inttypes.h
5.59KB
simplest_ffmpeg_mem_player/include/libavcodec/
-
simplest_ffmpeg_mem_player/include/libavcodec/avcodec.h
171.5KB
simplest_ffmpeg_mem_player/include/libavcodec/avfft.h
3.04KB
simplest_ffmpeg_mem_player/include/libavcodec/dxva2.h
2.34KB
simplest_ffmpeg_mem_player/include/libavcodec/old_codec_ids.h
10.4KB
simplest_ffmpeg_mem_player/include/libavcodec/vaapi.h
3.91KB
simplest_ffmpeg_mem_player/include/libavcodec/vda.h
4KB
simplest_ffmpeg_mem_player/include/libavcodec/vdpau.h
6.05KB
simplest_ffmpeg_mem_player/include/libavcodec/version.h
5.46KB
simplest_ffmpeg_mem_player/include/libavcodec/xvmc.h
5.92KB
simplest_ffmpeg_mem_player/include/libavdevice/
-
simplest_ffmpeg_mem_player/include/libavdevice/avdevice.h
16.25KB
simplest_ffmpeg_mem_player/include/libavdevice/version.h
1.82KB
simplest_ffmpeg_mem_player/include/libavfilter/
-
simplest_ffmpeg_mem_player/include/libavfilter/asrc_abuffer.h
3.24KB
simplest_ffmpeg_mem_player/include/libavfilter/avcodec.h
3.7KB
simplest_ffmpeg_mem_player/include/libavfilter/avfilter.h
55.55KB
simplest_ffmpeg_mem_player/include/libavfilter/avfiltergraph.h
975B
simplest_ffmpeg_mem_player/include/libavfilter/buffersink.h
7.36KB
simplest_ffmpeg_mem_player/include/libavfilter/buffersrc.h
4.78KB
simplest_ffmpeg_mem_player/include/libavfilter/version.h
3.42KB
simplest_ffmpeg_mem_player/include/libavformat/
-
simplest_ffmpeg_mem_player/include/libavformat/avformat.h
96.65KB
simplest_ffmpeg_mem_player/include/libavformat/avio.h
17.58KB
simplest_ffmpeg_mem_player/include/libavformat/version.h
2.76KB
simplest_ffmpeg_mem_player/include/libavutil/
-
simplest_ffmpeg_mem_player/include/libavutil/adler32.h
1.55KB
simplest_ffmpeg_mem_player/include/libavutil/aes.h
1.79KB
simplest_ffmpeg_mem_player/include/libavutil/attributes.h
4.13KB
simplest_ffmpeg_mem_player/include/libavutil/audio_fifo.h
4.31KB
simplest_ffmpeg_mem_player/include/libavutil/audioconvert.h
82B
simplest_ffmpeg_mem_player/include/libavutil/avassert.h
2.06KB
simplest_ffmpeg_mem_player/include/libavutil/avconfig.h
211B
simplest_ffmpeg_mem_player/include/libavutil/avstring.h
12.18KB
simplest_ffmpeg_mem_player/include/libavutil/avutil.h
8.36KB
simplest_ffmpeg_mem_player/include/libavutil/base64.h
2.03KB
simplest_ffmpeg_mem_player/include/libavutil/blowfish.h
2.26KB
simplest_ffmpeg_mem_player/include/libavutil/bprint.h
7.55KB
simplest_ffmpeg_mem_player/include/libavutil/bswap.h
2.83KB
simplest_ffmpeg_mem_player/include/libavutil/buffer.h
9.54KB
simplest_ffmpeg_mem_player/include/libavutil/channel_layout.h
8.88KB
simplest_ffmpeg_mem_player/include/libavutil/common.h
13.65KB
simplest_ffmpeg_mem_player/include/libavutil/cpu.h
4.62KB
simplest_ffmpeg_mem_player/include/libavutil/crc.h
2.72KB
simplest_ffmpeg_mem_player/include/libavutil/dict.h
6.37KB
simplest_ffmpeg_mem_player/include/libavutil/downmix_info.h
3.09KB
simplest_ffmpeg_mem_player/include/libavutil/error.h
4.65KB
simplest_ffmpeg_mem_player/include/libavutil/eval.h
5.18KB
simplest_ffmpeg_mem_player/include/libavutil/ffversion.h
128B
simplest_ffmpeg_mem_player/include/libavutil/fifo.h
4.55KB
simplest_ffmpeg_mem_player/include/libavutil/file.h
2.35KB
simplest_ffmpeg_mem_player/include/libavutil/frame.h
22.5KB
simplest_ffmpeg_mem_player/include/libavutil/hmac.h
2.8KB
simplest_ffmpeg_mem_player/include/libavutil/imgutils.h
7.66KB
simplest_ffmpeg_mem_player/include/libavutil/intfloat.h
1.69KB
simplest_ffmpeg_mem_player/include/libavutil/intfloat_readwrite.h
1.52KB
simplest_ffmpeg_mem_player/include/libavutil/intreadwrite.h
17.56KB
simplest_ffmpeg_mem_player/include/libavutil/lfg.h
1.94KB
simplest_ffmpeg_mem_player/include/libavutil/log.h
9.78KB
simplest_ffmpeg_mem_player/include/libavutil/lzo.h
2KB
simplest_ffmpeg_mem_player/include/libavutil/macros.h
1.17KB
simplest_ffmpeg_mem_player/include/libavutil/mathematics.h
5.06KB
simplest_ffmpeg_mem_player/include/libavutil/md5.h
1.92KB
simplest_ffmpeg_mem_player/include/libavutil/mem.h
14.03KB
simplest_ffmpeg_mem_player/include/libavutil/murmur3.h
1.19KB
simplest_ffmpeg_mem_player/include/libavutil/old_pix_fmts.h
14.07KB
simplest_ffmpeg_mem_player/include/libavutil/opt.h
34.09KB
simplest_ffmpeg_mem_player/include/libavutil/parseutils.h
7.08KB
simplest_ffmpeg_mem_player/include/libavutil/pixdesc.h
12.93KB
simplest_ffmpeg_mem_player/include/libavutil/pixfmt.h
27.57KB
simplest_ffmpeg_mem_player/include/libavutil/random_seed.h
1.37KB
simplest_ffmpeg_mem_player/include/libavutil/rational.h
4.09KB
simplest_ffmpeg_mem_player/include/libavutil/replaygain.h
1.57KB
simplest_ffmpeg_mem_player/include/libavutil/ripemd.h
1.98KB
simplest_ffmpeg_mem_player/include/libavutil/samplefmt.h
9.85KB
simplest_ffmpeg_mem_player/include/libavutil/sha.h
1.9KB
simplest_ffmpeg_mem_player/include/libavutil/sha512.h
1.98KB
simplest_ffmpeg_mem_player/include/libavutil/stereo3d.h
3.53KB
simplest_ffmpeg_mem_player/include/libavutil/time.h
1.25KB
simplest_ffmpeg_mem_player/include/libavutil/timecode.h
5.2KB
simplest_ffmpeg_mem_player/include/libavutil/timestamp.h
2.55KB
simplest_ffmpeg_mem_player/include/libavutil/version.h
4.38KB
simplest_ffmpeg_mem_player/include/libavutil/xtea.h
1.82KB
simplest_ffmpeg_mem_player/include/libpostproc/
-
simplest_ffmpeg_mem_player/include/libpostproc/postprocess.h
2.82KB
simplest_ffmpeg_mem_player/include/libpostproc/version.h
1.64KB
simplest_ffmpeg_mem_player/include/libswresample/
-
simplest_ffmpeg_mem_player/include/libswresample/swresample.h
11.54KB
simplest_ffmpeg_mem_player/include/libswresample/version.h
1.65KB
simplest_ffmpeg_mem_player/include/libswscale/
-
simplest_ffmpeg_mem_player/include/libswscale/swscale.h
11.97KB
simplest_ffmpeg_mem_player/include/libswscale/version.h
2.07KB
simplest_ffmpeg_mem_player/include/sdl/
-
simplest_ffmpeg_mem_player/include/sdl/SDL.h
3.16KB
simplest_ffmpeg_mem_player/include/sdl/SDL_active.h
1.89KB
simplest_ffmpeg_mem_player/include/sdl/SDL_audio.h
10.95KB
simplest_ffmpeg_mem_player/include/sdl/SDL_byteorder.h
986B
simplest_ffmpeg_mem_player/include/sdl/SDL_cdrom.h
5.91KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config.h
1.44KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_dreamcast.h
2.74KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_macos.h
2.74KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_macosx.h
4.09KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_minimal.h
1.94KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_nds.h
2.91KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_os2.h
3.55KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_symbian.h
3.03KB
simplest_ffmpeg_mem_player/include/sdl/SDL_config_win32.h
4.47KB
simplest_ffmpeg_mem_player/include/sdl/SDL_copying.h
869B
simplest_ffmpeg_mem_player/include/sdl/SDL_cpuinfo.h
2.17KB
simplest_ffmpeg_mem_player/include/sdl/SDL_endian.h
5.91KB
simplest_ffmpeg_mem_player/include/sdl/SDL_error.h
1.83KB
simplest_ffmpeg_mem_player/include/sdl/SDL_events.h
12.74KB
simplest_ffmpeg_mem_player/include/sdl/SDL_getenv.h
979B
simplest_ffmpeg_mem_player/include/sdl/SDL_joystick.h
5.4KB
simplest_ffmpeg_mem_player/include/sdl/SDL_keyboard.h
4KB
simplest_ffmpeg_mem_player/include/sdl/SDL_keysym.h
7.32KB
simplest_ffmpeg_mem_player/include/sdl/SDL_loadso.h
2.67KB
simplest_ffmpeg_mem_player/include/sdl/SDL_main.h
2.8KB
simplest_ffmpeg_mem_player/include/sdl/SDL_mouse.h
4.64KB
simplest_ffmpeg_mem_player/include/sdl/SDL_mutex.h
5.72KB
simplest_ffmpeg_mem_player/include/sdl/SDL_name.h
183B
simplest_ffmpeg_mem_player/include/sdl/SDL_opengl.h
328.66KB
simplest_ffmpeg_mem_player/include/sdl/SDL_platform.h
2.64KB
simplest_ffmpeg_mem_player/include/sdl/SDL_quit.h
1.96KB
simplest_ffmpeg_mem_player/include/sdl/SDL_rwops.h
4.84KB
simplest_ffmpeg_mem_player/include/sdl/SDL_stdinc.h
16.09KB
simplest_ffmpeg_mem_player/include/sdl/SDL_syswm.h
6.17KB
simplest_ffmpeg_mem_player/include/sdl/SDL_thread.h
4.14KB
simplest_ffmpeg_mem_player/include/sdl/SDL_timer.h
4.42KB
simplest_ffmpeg_mem_player/include/sdl/SDL_types.h
979B
simplest_ffmpeg_mem_player/include/sdl/SDL_version.h
2.58KB
simplest_ffmpeg_mem_player/include/sdl/SDL_video.h
37.13KB
simplest_ffmpeg_mem_player/include/sdl/begin_code.h
5.11KB
simplest_ffmpeg_mem_player/include/sdl/close_code.h
1.45KB
simplest_ffmpeg_mem_player/include/stdint.h
5.79KB
simplest_ffmpeg_mem_player/lib/
-
simplest_ffmpeg_mem_player/lib/SDL.lib
41.53KB
simplest_ffmpeg_mem_player/lib/SDLmain.lib
8.02KB
simplest_ffmpeg_mem_player/lib/avcodec.lib
218.52KB
simplest_ffmpeg_mem_player/lib/avdevice.lib
9.22KB
simplest_ffmpeg_mem_player/lib/avfilter.lib
66.06KB
simplest_ffmpeg_mem_player/lib/avformat.lib
122.13KB
simplest_ffmpeg_mem_player/lib/avutil.lib
320.93KB
simplest_ffmpeg_mem_player/lib/postproc.lib
8.03KB
simplest_ffmpeg_mem_player/lib/swresample.lib
75.54KB
simplest_ffmpeg_mem_player/lib/swscale.lib
27.8KB
simplest_ffmpeg_mem_player/postproc-52.dll
118.5KB
simplest_ffmpeg_mem_player/simplest_ffmpeg_mem_player.cpp
5.24KB
simplest_ffmpeg_mem_player/simplest_ffmpeg_mem_player.vcxproj
4.82KB
simplest_ffmpeg_mem_player/simplest_ffmpeg_mem_player.vcxproj.filters
1006B
simplest_ffmpeg_mem_player/simplest_ffmpeg_mem_player.vcxproj.user
141B
simplest_ffmpeg_mem_player/stderr.txt
-
simplest_ffmpeg_mem_player/stdout.txt
-
simplest_ffmpeg_mem_player/swresample-0.dll
269.5KB
simplest_ffmpeg_mem_player/swscale-2.dll
424KB
simplest_ffmpeg_mem_transcoder/
-
simplest_ffmpeg_mem_transcoder/.gitignore
61B
simplest_ffmpeg_mem_transcoder/ReadMe.txt
853B
simplest_ffmpeg_mem_transcoder/avcodec-55.dll
18.06MB
simplest_ffmpeg_mem_transcoder/avdevice-55.dll
1.28MB
simplest_ffmpeg_mem_transcoder/avfilter-4.dll
1.94MB
simplest_ffmpeg_mem_transcoder/avformat-55.dll
5.1MB
simplest_ffmpeg_mem_transcoder/avutil-52.dll
408.5KB
simplest_ffmpeg_mem_transcoder/compile_cl.bat
650B
simplest_ffmpeg_mem_transcoder/compile_gcc.sh
516B
simplest_ffmpeg_mem_transcoder/compile_mingw.sh
537B
simplest_ffmpeg_mem_transcoder/cuc60anniversary_start.h264
768KB
simplest_ffmpeg_mem_transcoder/cuc60anniversary_start.ts
7.53MB
simplest_ffmpeg_mem_transcoder/include/
-
simplest_ffmpeg_mem_transcoder/include/_mingw.h
7.79KB
simplest_ffmpeg_mem_transcoder/include/inttypes.h
5.59KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/
-
simplest_ffmpeg_mem_transcoder/include/libavcodec/avcodec.h
171.5KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/avfft.h
3.04KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/dxva2.h
2.34KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/old_codec_ids.h
10.4KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/vaapi.h
3.91KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/vda.h
4KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/vdpau.h
6.05KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/version.h
5.46KB
simplest_ffmpeg_mem_transcoder/include/libavcodec/xvmc.h
5.92KB
simplest_ffmpeg_mem_transcoder/include/libavdevice/
-
simplest_ffmpeg_mem_transcoder/include/libavdevice/avdevice.h
16.25KB
simplest_ffmpeg_mem_transcoder/include/libavdevice/version.h
1.82KB
simplest_ffmpeg_mem_transcoder/include/libavfilter/
-
simplest_ffmpeg_mem_transcoder/include/libavfilter/asrc_abuffer.h
3.24KB
simplest_ffmpeg_mem_transcoder/include/libavfilter/avcodec.h
3.7KB
simplest_ffmpeg_mem_transcoder/include/libavfilter/avfilter.h
55.55KB
simplest_ffmpeg_mem_transcoder/include/libavfilter/avfiltergraph.h
975B
simplest_ffmpeg_mem_transcoder/include/libavfilter/buffersink.h
7.36KB
simplest_ffmpeg_mem_transcoder/include/libavfilter/buffersrc.h
4.78KB
simplest_ffmpeg_mem_transcoder/include/libavfilter/version.h
3.42KB
simplest_ffmpeg_mem_transcoder/include/libavformat/
-
simplest_ffmpeg_mem_transcoder/include/libavformat/avformat.h
96.65KB
simplest_ffmpeg_mem_transcoder/include/libavformat/avio.h
17.58KB
simplest_ffmpeg_mem_transcoder/include/libavformat/version.h
2.76KB
simplest_ffmpeg_mem_transcoder/include/libavutil/
-
simplest_ffmpeg_mem_transcoder/include/libavutil/adler32.h
1.55KB
simplest_ffmpeg_mem_transcoder/include/libavutil/aes.h
1.79KB
simplest_ffmpeg_mem_transcoder/include/libavutil/attributes.h
4.13KB
simplest_ffmpeg_mem_transcoder/include/libavutil/audio_fifo.h
4.31KB
simplest_ffmpeg_mem_transcoder/include/libavutil/audioconvert.h
82B
simplest_ffmpeg_mem_transcoder/include/libavutil/avassert.h
2.06KB
simplest_ffmpeg_mem_transcoder/include/libavutil/avconfig.h
211B
simplest_ffmpeg_mem_transcoder/include/libavutil/avstring.h
12.18KB
simplest_ffmpeg_mem_transcoder/include/libavutil/avutil.h
8.36KB
simplest_ffmpeg_mem_transcoder/include/libavutil/base64.h
2.03KB
simplest_ffmpeg_mem_transcoder/include/libavutil/blowfish.h
2.26KB
simplest_ffmpeg_mem_transcoder/include/libavutil/bprint.h
7.55KB
simplest_ffmpeg_mem_transcoder/include/libavutil/bswap.h
2.83KB
simplest_ffmpeg_mem_transcoder/include/libavutil/buffer.h
9.54KB
simplest_ffmpeg_mem_transcoder/include/libavutil/channel_layout.h
8.88KB
simplest_ffmpeg_mem_transcoder/include/libavutil/common.h
13.65KB
simplest_ffmpeg_mem_transcoder/include/libavutil/cpu.h
4.62KB
simplest_ffmpeg_mem_transcoder/include/libavutil/crc.h
2.72KB
simplest_ffmpeg_mem_transcoder/include/libavutil/dict.h
6.37KB
simplest_ffmpeg_mem_transcoder/include/libavutil/downmix_info.h
3.09KB
simplest_ffmpeg_mem_transcoder/include/libavutil/error.h
4.65KB
simplest_ffmpeg_mem_transcoder/include/libavutil/eval.h
5.18KB
simplest_ffmpeg_mem_transcoder/include/libavutil/ffversion.h
128B
simplest_ffmpeg_mem_transcoder/include/libavutil/fifo.h
4.55KB
simplest_ffmpeg_mem_transcoder/include/libavutil/file.h
2.35KB
simplest_ffmpeg_mem_transcoder/include/libavutil/frame.h
22.5KB
simplest_ffmpeg_mem_transcoder/include/libavutil/hmac.h
2.8KB
simplest_ffmpeg_mem_transcoder/include/libavutil/imgutils.h
7.66KB
simplest_ffmpeg_mem_transcoder/include/libavutil/intfloat.h
1.69KB
simplest_ffmpeg_mem_transcoder/include/libavutil/intfloat_readwrite.h
1.52KB
simplest_ffmpeg_mem_transcoder/include/libavutil/intreadwrite.h
17.56KB
simplest_ffmpeg_mem_transcoder/include/libavutil/lfg.h
1.94KB
simplest_ffmpeg_mem_transcoder/include/libavutil/log.h
9.78KB
simplest_ffmpeg_mem_transcoder/include/libavutil/lzo.h
2KB
simplest_ffmpeg_mem_transcoder/include/libavutil/macros.h
1.17KB
simplest_ffmpeg_mem_transcoder/include/libavutil/mathematics.h
5.06KB
simplest_ffmpeg_mem_transcoder/include/libavutil/md5.h
1.92KB
simplest_ffmpeg_mem_transcoder/include/libavutil/mem.h
14.03KB
simplest_ffmpeg_mem_transcoder/include/libavutil/murmur3.h
1.19KB
simplest_ffmpeg_mem_transcoder/include/libavutil/old_pix_fmts.h
14.07KB
simplest_ffmpeg_mem_transcoder/include/libavutil/opt.h
34.09KB
simplest_ffmpeg_mem_transcoder/include/libavutil/parseutils.h
7.08KB
simplest_ffmpeg_mem_transcoder/include/libavutil/pixdesc.h
12.93KB
simplest_ffmpeg_mem_transcoder/include/libavutil/pixfmt.h
27.57KB
simplest_ffmpeg_mem_transcoder/include/libavutil/random_seed.h
1.37KB
simplest_ffmpeg_mem_transcoder/include/libavutil/rational.h
4.09KB
simplest_ffmpeg_mem_transcoder/include/libavutil/replaygain.h
1.57KB
simplest_ffmpeg_mem_transcoder/include/libavutil/ripemd.h
1.98KB
simplest_ffmpeg_mem_transcoder/include/libavutil/samplefmt.h
9.85KB
simplest_ffmpeg_mem_transcoder/include/libavutil/sha.h
1.9KB
simplest_ffmpeg_mem_transcoder/include/libavutil/sha512.h
1.98KB
simplest_ffmpeg_mem_transcoder/include/libavutil/stereo3d.h
3.53KB
simplest_ffmpeg_mem_transcoder/include/libavutil/time.h
1.25KB
simplest_ffmpeg_mem_transcoder/include/libavutil/timecode.h
5.2KB
simplest_ffmpeg_mem_transcoder/include/libavutil/timestamp.h
2.55KB
simplest_ffmpeg_mem_transcoder/include/libavutil/version.h
4.38KB
simplest_ffmpeg_mem_transcoder/include/libavutil/xtea.h
1.82KB
simplest_ffmpeg_mem_transcoder/include/libpostproc/
-
simplest_ffmpeg_mem_transcoder/include/libpostproc/postprocess.h
2.82KB
simplest_ffmpeg_mem_transcoder/include/libpostproc/version.h
1.64KB
simplest_ffmpeg_mem_transcoder/include/libswresample/
-
simplest_ffmpeg_mem_transcoder/include/libswresample/swresample.h
11.54KB
simplest_ffmpeg_mem_transcoder/include/libswresample/version.h
1.65KB
simplest_ffmpeg_mem_transcoder/include/libswscale/
-
simplest_ffmpeg_mem_transcoder/include/libswscale/swscale.h
11.97KB
simplest_ffmpeg_mem_transcoder/include/libswscale/version.h
2.07KB
simplest_ffmpeg_mem_transcoder/include/stdint.h
5.79KB
simplest_ffmpeg_mem_transcoder/lib/
-
simplest_ffmpeg_mem_transcoder/lib/avcodec.lib
218.52KB
simplest_ffmpeg_mem_transcoder/lib/avdevice.lib
9.22KB
simplest_ffmpeg_mem_transcoder/lib/avfilter.lib
66.06KB
simplest_ffmpeg_mem_transcoder/lib/avformat.lib
122.13KB
simplest_ffmpeg_mem_transcoder/lib/avutil.lib
320.93KB
simplest_ffmpeg_mem_transcoder/lib/postproc.lib
8.03KB
simplest_ffmpeg_mem_transcoder/lib/swresample.lib
75.54KB
simplest_ffmpeg_mem_transcoder/lib/swscale.lib
27.8KB
simplest_ffmpeg_mem_transcoder/postproc-52.dll
118.5KB
simplest_ffmpeg_mem_transcoder/simplest_ffmpeg_mem_transcoder.cpp
10.35KB
simplest_ffmpeg_mem_transcoder/simplest_ffmpeg_mem_transcoder.vcxproj
4.73KB
simplest_ffmpeg_mem_transcoder/simplest_ffmpeg_mem_transcoder.vcxproj.filters
1010B
simplest_ffmpeg_mem_transcoder/simplest_ffmpeg_mem_transcoder.vcxproj.user
141B
simplest_ffmpeg_mem_transcoder/swresample-0.dll
269.5KB
simplest_ffmpeg_mem_transcoder/swscale-2.dll
424KB

资源内容介绍

本程序实现了FFmpeg对内存中的视频数据的读写。包含两个工程: simplest_ffmpeg_mem_player:播放内存中视频数据的播放器。 simplest_ffmpeg_mem_transcoder:转码内存中数据的转码器。1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。
/** * 最简单的基于FFmpeg的内存读写例子(内存转码器) * Simplest FFmpeg mem Transcoder * * 雷霄骅,张晖 * leixiaohua1020@126.com * 中国传媒大学/数字电视技术 * Communication University of China / Digital TV Technology * http://blog.csdn.net/leixiaohua1020 * * 本程序实现了任意格式视频数据(例如MPEG2)转码为H.264码流数据。 * 本程序并不是对文件进行处理,而是对内存中的视频数据进行处理。 * 它从内存读取数据,并且将转码后的数据输出到内存中。 * 是最简单的使用FFmpeg读写内存的例子。 * * This software convert video bitstream (Such as MPEG2) to H.264 * bitstream. It read video bitstream from memory (not from a file), * convert it to H.264 bitstream, and finally output to another memory. * It's the simplest example to use FFmpeg to read (or write) from * memory. * */#include <stdio.h>#define __STDC_CONSTANT_MACROS#ifdef _WIN32//Windowsextern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libavutil/avutil.h"#include "libavutil/opt.h"#include "libavutil/pixdesc.h"};#else//Linux...#ifdef __cplusplusextern "C"{#endif#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libavutil/avutil.h>#include <libavutil/opt.h>#include <libavutil/pixdesc.h>#ifdef __cplusplus};#endif#endifFILE *fp_open;FILE *fp_write;//Read Fileint read_buffer(void *opaque, uint8_t *buf, int buf_size){if(!feof(fp_open)){int true_size=fread(buf,1,buf_size,fp_open);return true_size;}else{return -1;}}//Write Fileint write_buffer(void *opaque, uint8_t *buf, int buf_size){if(!feof(fp_write)){int true_size=fwrite(buf,1,buf_size,fp_write);return true_size;}else{return -1;}}int flush_encoder(AVFormatContext *fmt_ctx,unsigned int stream_index){ int ret; int got_frame;AVPacket enc_pkt; if (!(fmt_ctx->streams[stream_index]->codec->codec->capabilities & CODEC_CAP_DELAY)) return 0; while (1) { av_log(NULL, AV_LOG_INFO, "Flushing stream #%u encoder\n", stream_index); //ret = encode_write_frame(NULL, stream_index, &got_frame); enc_pkt.data = NULL;enc_pkt.size = 0;av_init_packet(&enc_pkt);ret = avcodec_encode_video2 (fmt_ctx->streams[stream_index]->codec, &enc_pkt,NULL, &got_frame);av_frame_free(NULL);if (ret < 0)break;if (!got_frame){ret=0;break;}enc_pkt.stream_index = stream_index;enc_pkt.dts = av_rescale_q_rnd(enc_pkt.dts,fmt_ctx->streams[stream_index]->codec->time_base,fmt_ctx->streams[stream_index]->time_base,(AVRounding)(AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX));enc_pkt.pts = av_rescale_q_rnd(enc_pkt.pts,fmt_ctx->streams[stream_index]->codec->time_base,fmt_ctx->streams[stream_index]->time_base,(AVRounding)(AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX));enc_pkt.duration = av_rescale_q(enc_pkt.duration,fmt_ctx->streams[stream_index]->codec->time_base,fmt_ctx->streams[stream_index]->time_base);av_log(NULL, AV_LOG_DEBUG, "Muxing frame\n");ret = av_write_frame(fmt_ctx, &enc_pkt);if (ret < 0) break; } return ret;}int main(int argc, char* argv[]){int ret;AVFormatContext* ifmt_ctx=NULL;AVFormatContext* ofmt_ctx=NULL;AVPacket packet,enc_pkt;AVFrame *frame = NULL;enum AVMediaType type;unsigned int stream_index;unsigned int i=0;int got_frame,enc_got_frame;AVStream *out_stream;AVStream *in_stream;AVCodecContext *dec_ctx, *enc_ctx;AVCodec *encoder;fp_open = fopen("cuc60anniversary_start.ts", "rb");//视频源文件 fp_write=fopen("cuc60anniversary_start.h264","wb+"); //输出文件av_register_all();ifmt_ctx=avformat_alloc_context();avformat_alloc_output_context2(&ofmt_ctx, NULL, "h264", NULL);unsigned char* inbuffer=NULL;unsigned char* outbuffer=NULL;inbuffer=(unsigned char*)av_malloc(32768);outbuffer=(unsigned char*)av_malloc(32768);AVIOContext *avio_in=NULL;AVIOContext *avio_out=NULL;avio_in =avio_alloc_context(inbuffer, 32768,0,NULL,read_buffer,NULL,NULL); if(avio_in==NULL)goto end;avio_out =avio_alloc_context(outbuffer, 32768,0,NULL,NULL,write_buffer,NULL); if(avio_out==NULL)goto end;ifmt_ctx->pb=avio_in; ifmt_ctx->flags=AVFMT_FLAG_CUSTOM_IO;if ((ret = avformat_open_input(&ifmt_ctx, "whatever", NULL, NULL)) < 0) {av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n");return ret;}if ((ret = avformat_find_stream_info(ifmt_ctx, NULL)) < 0) {av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n");return ret;}for (i = 0; i < ifmt_ctx->nb_streams; i++) {AVStream *stream;AVCodecContext *codec_ctx;stream = ifmt_ctx->streams[i];codec_ctx = stream->codec;if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO){ret = avcodec_open2(codec_ctx,avcodec_find_decoder(codec_ctx->codec_id), NULL);if (ret < 0) {av_log(NULL, AV_LOG_ERROR, "Failed to open decoder for stream #%u\n", i);return ret;}}}//av_dump_format(ifmt_ctx, 0, "whatever", 0);//avio_out->write_packet=write_packet;ofmt_ctx->pb=avio_out; ofmt_ctx->flags=AVFMT_FLAG_CUSTOM_IO;for (i = 0; i < 1; i++) {out_stream = avformat_new_stream(ofmt_ctx, NULL);if (!out_stream) {av_log(NULL, AV_LOG_ERROR, "Failed allocating output stream\n");return AVERROR_UNKNOWN;}in_stream = ifmt_ctx->streams[i];dec_ctx = in_stream->codec;enc_ctx = out_stream->codec;if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO){encoder = avcodec_find_encoder(AV_CODEC_ID_H264);enc_ctx->height = dec_ctx->height;enc_ctx->width = dec_ctx->width;enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio;enc_ctx->pix_fmt = encoder->pix_fmts[0];enc_ctx->time_base = dec_ctx->time_base;//enc_ctx->time_base.num = 1;//enc_ctx->time_base.den = 25;//H264的必备选项,没有就会错enc_ctx->me_range=16;enc_ctx->max_qdiff = 4;enc_ctx->qmin = 10;enc_ctx->qmax = 51;enc_ctx->qcompress = 0.6; enc_ctx->refs=3;enc_ctx->bit_rate = 500000;ret = avcodec_open2(enc_ctx, encoder, NULL);if (ret < 0) {av_log(NULL, AV_LOG_ERROR, "Cannot open video encoder for stream #%u\n", i);return ret;}}else if (dec_ctx->codec_type == AVMEDIA_TYPE_UNKNOWN) {av_log(NULL, AV_LOG_FATAL, "Elementary stream #%d is of unknown type, cannot proceed\n", i);return AVERROR_INVALIDDATA;} else {ret = avcodec_copy_context(ofmt_ctx->streams[i]->codec,ifmt_ctx->streams[i]->codec);if (ret < 0) {av_log(NULL, AV_LOG_ERROR, "Copying stream context failed\n");return ret;}}if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;}//av_dump_format(ofmt_ctx, 0, "whatever", 1);ret = avformat_write_header(ofmt_ctx, NULL);if (ret < 0) {av_log(NULL, AV_LOG_ERROR, "Error occurred when opening output file\n");return ret;}i=0;while (1) {i++;if ((ret = av_read_frame(ifmt_ctx, &packet)) < 0)break;stream_index = packet.stream_index;if(stream_index!=0)continue;type = ifmt_ctx->streams[packet.stream_index]->codec->codec_type;av_log(NULL, AV_LOG_DEBUG, "Demuxer gave frame of stream_index %u\n",stream_index);av_log(NULL, AV_LOG_DEBUG, "Going to reencode the frame\n");frame = av_frame_alloc();if (!frame) {ret = AVERROR(ENOMEM);break;}packet.dts = av_rescale_q_rnd(packet.dts,ifmt_ctx->streams[stream_index]->time_bas

用户评论 (0)

发表评论

captcha