大闹天宫:悟空在FFmpeg社区从入门到出家 刘歧 OnVideo
2020-03-01 231浏览
- 1.य़ᳺॠ ఉᑮࣁ FFmpeg ᐒ܄فᳪڊکਹԏ᪠ ྏڝ OnVideo ᘶڠݳতՈ̵FFmpeg Developer
- 2.
- 3.
- 4.
- 5.ྏڝ OnVideo ᘶڠݳতՈ ӧᳩٟ֢ FFmpeg Developer / Committer / Consulting ၞড়֛ᆽঅᘏ
- 6.• ॶ • FFmpeg ૡ֢ොୗ • FFmpeg ຝՕᕨ • FFmpeg ݎਫ • FFmpeg ᐒٖࢵ܄ᇫா • FFmpeg ᐒ܄ሿᇫ݊๚
- 7.ॶ • ᥴ٬ૡ֢Ӿਫᴬአکጱᳯ᷌(ڢᴻhls wrap݇හ) • ijkplayer / OBS / VLC • CDN ๐ ࠟܯۓ/ ԯ๐ࠟܯۓ • ᖫᥴᎱᦡ॓ࠟܯ
- 8.• ॶ • FFmpeg ૡ֢ොୗ • FFmpeg ຝՕᕨ • FFmpeg ݎਫ • FFmpeg ᐒٖࢵ܄ᇫா • FFmpeg ᐒ܄ሿᇫ݊๚
- 9.فᳪԧᥴ FFmpeg • তԭ 2000 ଙ Fabrice Bellard ڠୌ • 2004 - 2015 ኧ Michael Niedermayer ᶾᓕቘ •https://ffmpeg.org/documentation.html•https://trac.ffmpeg.org• IRCӣय़᷇᭲ #ffmpeg-devel̵#ffmpeg̵ #libav-user
- 10.Patch ᓕቘ • ෯դᎱପ SVN ᓕቘ • դᎱପ Git ᓕቘ maintainer contributor • patchݎᭆᛗ maillist • patchڜᤒ patchwork • դᎱᶉா༄ၥ Coverity • ۑᚆᛔۖ۸ၥᦶ FATE reviewer tester commiter
- 11.FATE • QEMU + MIPS • --target-exec='qemu-mips -cpu 74Kf -L /usr/mips-linux-gnu/‘ --cross-prefix=/usr/mips-linux-gnu/bin/ --cc='ccache mips-linux-gnu-gcc-4.4' --arch=mips --target-os=linux --enable-cross-compile --disable-mipsfpu • QEMU + ARM • --cc='ccache arm-linux-gnueabi-gcc' --target-exec='qemu-arm -L /usr/arm-linux-gnueabi/' --arch=armv5te -cpu=armv5te --enable-cross-compile --target-os=linux --cross-prefix=/usr/arm-linux-gnueabi/bin/ • WINE + MinGW • -cc='ccache x86_64-w64-mingw32-gcc' --arch=x86_64 --target-os=mingw32 —cross-prefix=x86_64-w64-mingw32--target_exec=wine • PC
- 12.౮ԅᖌಷᘏ • ࣁ ffmpeg-devel ᮒկڜᤒ review patch • ၥᦶ patch ࢧ୭ၥᦶ • ᪙ᬰඪ೮ porting کෛᏝկ̵֢ᔮᕹ̵ෛ spec • ᯿դᎱ
- 13.Code Review • LICENSE ၄ጦ • CodeStyle Ӹ໒ഴګ • ๅෛ݊ • ۱ ތFATE • ᭗ᬦ valgrind ၥᦶ • Ḓض᭗ᬦ tools/patcheck
- 14.• ॶ • FFmpeg ૡ֢ොୗ • FFmpeg ຝՕᕨ • FFmpeg ݎਫ • FFmpeg ᐒٖࢵ܄ᇫா • FFmpeg ᐒ܄ሿᇫ݊๚
- 15.FFmpeg ཛྷࣘᕟ౮ • AVFormat • AVCodec • AVFilter • AVutil • AVResample • SWScale • AVDevice Mux/Demux Protocols I/O Devices en/decode filter_frame resample/rescale utils
- 16.FFmpeg ཛྷࣘᕟ౮ format • • AVFormat AVStream stream • AVCodec codec • AVFrame frame pb packets
- 17.FFmpeg ᕚᕮ Module1 Module2 Module3 Module4 • AVFormatContext -> AVOutputFormat • AVFormatContext -> AVInputFormat • AVFilterContext -> AVFilter • AVStream -> [ AVCodec / AVCodecParameters ]
- 18.• ॶ • FFmpeg ૡ֢ොୗ • FFmpeg ຝՕᕨ • FFmpeg ݎਫ • FFmpeg ᐒٖࢵ܄ᇫா • FFmpeg ᐒ܄ሿᇫ݊๚
- 19.FFmpeg ݎਫ - DASH ݎ • ISO_IEC_23009-1_2014
- 20.FFmpeg ݎਫ - DASH ݎ [ፗඎӨᅩඎࢩᔰ] • - MPDtype:static / dynamic [ᖀಥࢩᔰ] • - Period / AdapationSet / Representation .SegmentBase - Period / AdapationSet / Representation .SegmentList - Period / AdapationSet / Representation .SegmentTemplate [ۖாӨਞࢩقᔰ] • - $RepresentationID$ / $Number$ / $Bandwidth$ / $Time$
- 21.FFmpeg ݎਫ - DASH ݎ [timeline] • - S - @t ᩸তᳵ - @r ᯿ེ॔හ - @d ᇆᳩ ๏ SegmentBase.@timescale ๏ SegmentBase.@presentationTimeOffset ๏ SegmentBase.@timeShiftBufferDepth ๏ SegmentBase.@availabilityTimeOffset
- 22.FFmpeg ݎਫ - DASH ݎ • AVInputFormat ff_dash_demuxer = { • .name • .long_name • .priv_class • .priv_data_size = sizeof(DASHContext), • .read_probe = dash_probe, • .read_header = dash_read_header, • .read_packet = dash_read_packet, • .read_close = dash_close, • .read_seek = dash_read_seek, • .flags • }; = "dash", = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"), = &dash_class, = AVFMT_NO_BYTE_SEEK,
- 23.• ॶ • FFmpeg ૡ֢ොୗ • FFmpeg ຝՕᕨ • FFmpeg ݎਫ • FFmpeg ᐒٖࢵ܄ᇫா • FFmpeg ᐒ܄ሿᇫ݊๚
- 24.FFmpeg ᐒٖࢵ܄ᇫா • ṛಋইԯ҅֕ଚӧၚ • ӫਹஉग़҅֕உᨯሠ • ݺབஉग़҅֕දᬰஉ
- 25.FFmpeg ᐒٖࢵ܄ᇫா • 335 Timothy Gu • 114 Steven Liu (ၚ) • 41 Jun Zhao / Zhong Li (ၚ) • 37 Zuxy Meng • 35 zhaoxiu.zeng • 28 Rong Yan • 27 Zhang Rui • 24 Zhentan Feng
- 26.• ॶ • FFmpeg ૡ֢ොୗ • FFmpeg ຝՕᕨ • FFmpeg ݎਫ • FFmpeg ᐒٖࢵ܄ᇫா • FFmpeg ᐒ܄ሿᇫ݊๚
- 27.FFmpeg ᐒ܄ෆ֛ᇫா݊๚ • 288 Demuxer • 156 Muxers • 45 Protocols • 210 Encoders • 495 Decoders • 354 Filters • 21 Indevs • 12 Outdevs
- 28.FFmpeg ᐒ܄ෆ֛ᇫா݊๚ • libav merge Ի • FUZZ ᷚᴾදᬰ • AV1 ᘍᡤ • AVFilter ᯿ • OpenCL ᖫᥴᎱ॒ቘ • ᵋݎ • ܦଶՈࣁीग़҅ӾࢵՈஉ
- 29.ᕮ • ᵱᥝๅग़ጱ݇Ө • ᨯሠጱݶᛔ૩ݶԞտṛҁದ̵ஞฬ҂ • ݢզๅग़ጱԧᥴڹဠ
- 30.