2021年英雄联盟半决赛第一场dkVSt哪个队赢了,lpl选手帅照
前言
这篇文章写了有一会儿了,但是我手头作业要写不完了,下周三之前估计最多也就更新一下我的面经了,因为今天晚上还要抖音的三面,阿里的下周一估计也要到hr面了。周六周天的时间,我的计组和电路学作业都还没开动,再不学我就要凉了,时间真的太紧了,见谅见谅。
文章内容参考书目《音视频开发进阶指南 -- 基于 Android 与 iOS 平台的实践》
目录
【1】【从零冲击音视频开发】音视频开发必备知识基础
【2】【从零冲击音视频开发】移动环境搭建
【3】【从零冲击音视频开发】FFmpeg的介绍和基本使用
FFmpeg的环境搭建
材料清单:1. 10.15.2的OSX系统2. HomeBrew(安装姿势:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)")3. ffmpeg的依赖(安装姿势: brew install ffmpeg;文件路径: /usr/local/Cellar)4. ffmpeg-4.2.2的源码(官网下)5. NDK-r20
这是一个用于本地使用的环境,里面放置有不少的样例,但是不建议使用在开发。
我使用过了很多次,.a的静态库在XCode上能直接玩,在AS上就直接整不起来。所以这里要推一个交叉编译详解的文章。
如果你是勤劳的读者,要自己交叉编译,过程详见于【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】一、FFmpeg so库编译如果你是想“快速”开发的读者,可以直接“偷”我的。相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击788280672加群免费领取~
FFmpeg模块介绍
bin
命令行工具所在的位置,ffplay、ffmpeg、ffprobe等等。
// ffprobe各种命令> ffprobe 文件 // 显示文件头信息> ffprobe -show_format 文件 // 显示输出格式、时间长度、文件大小、比特率等信息> ffprobe -pirnt_format json -show_streams 文件 // 以json格式输出具体每一个流的信息> ffprobe -show_frames 文件 // 显示帧信息> ffprobe -show_packets 文件 // 显示包信息//。。。。。// ffplay> ffplay 文件 // 播放> ffplay 文件 -loop 10 // 循环播放10次> ffplay 文件 -ast 0 // 播放第0路音频流,其他路没有流的话会静音> ffplay 文件 -vst 0 // 播放第0路视频流,其他路没有流的话会黑屏> ffplay 文件.pcm -f s16le -channels 2 -ar 44100 // 播放pcm格式文件的方式,需要设置格式(-f),声道数(-channels),采样率(-ar)> ffplay -f rawvideo -pixel_format yuv420p -s 480*480 文件.yuv(文件.rgb) // 查看一帧的视频帧(这个没有调试通过)> ffplay 文件 -sync audio // 以音频为基准进行音视频同步(默认方案)> ffplay 文件 -sync video // 以视频为基准进行音视频同步> ffplay 文件 -sync ext // 以外部时钟为基准进行音视频同步> ffplay 文件 -ss 50 // 跳过50s的内容//。。。。。// ffmpeg// 会有很多的通过参数以图片给出,具体使用后期会慢慢看到,就不再演示
inlcude -> 8大模块
存放的是已经编译结束的静态库文件的头文件
AVCodec: 用于编码解码AVDevice: 输入输出设备AVFilter: 音视频滤镜库,提供音视频特效的处理。AVFormat: 文件格式和协议库。封装了Protocol层和Demuxer、Muxer层。AVResample: 用于音频重采样 (书上说老版本才会编译出来,已经废弃,但是我的版本是最新的,有待考察)AVUtil: 核心工具PostProc: 用于后期处理,是使用AVFilter时要开启的模块。SwResample: 用于音频重采样,对音频进行声道数、数据格式、采样率等基本信息转化。SWScale: 将图像进行格式转换,比如YUV -> RGBlib
存放的是已经编译完成的静态库文件,在链接阶段会使用到。
share
其实就是一个example的位置,用于讲解FFmpeg各个工具的使用方法,还有使用样例等等。
FFmpeg的使用
前面讲了很多东西,但是我们真正要在Java代码中如何进行使用却完全还没有进行过,所以这里就要进行的是Java代码中的测试了。
第一步:导包和引用
然后CMakeList.txt中导入我们需要加载的so。
cmake_minimum_required(VERSION 3.4.1)# 定义变量set(ffmpeg_lib_dir ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})set(ffmpeg_head_dir ${CMAKE_SOURCE_DIR}/ffmpeg)add_library( # Sets the name of the library. audioencoder SHARED # lame lame/bitstream.c lame/encoder.c lame/gain_analysis.c lame/lame.c lame/id3tag.c lame/mpglib_interface.c lame/newmdct.c lame/presets.c lame/psymodel.c lame/quantize.c lame/fft.c lame/quantize_pvt.c lame/reservoir.c lame/set_get.c lame/tables.c lame/takehiro.c lame/util.c lame/vbrquantize.c lame/VbrTag.c lame/version.c # mine audioencoder/audioencoder.cpp audioencoder/mp3_encoder.cpp)# 添加ffmpeg相关的so库add_library( avutil SHARED IMPORTED )set_target_properties( avutil PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libavutil.so )add_library( swresample SHARED IMPORTED )set_target_properties( swresample PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libswresample.so )add_library( avcodec SHARED IMPORTED )set_target_properties( avcodec PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libavcodec.so )add_library( avfilter SHARED IMPORTED)set_target_properties( avfilter PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libavfilter.so )add_library( swscale SHARED IMPORTED)set_target_properties( swscale PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libswscale.so )add_library( avformat SHARED IMPORTED)set_target_properties( avformat PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libavformat.so )add_library( avdevice SHARED IMPORTED)set_target_properties( avdevice PROPERTIES IMPORTED_LOCATION ${ffmpeg_lib_dir}/libavdevice.so )find_library( # Sets the name of the path variable. log-lib log)# 引入头文件include_directories(${ffmpeg_head_dir}/include)target_link_libraries( # Specifies the target library. audioencoder # ffmpeg avutil swresample avcodec avfilter swscale avformat avdevice ${log-lib})
第二步:使用
当然使用方案上来说还是一样的,但是这里我们存在需要注意的地方,因为FFmpeg是由C编写而成的,而我们去编译的却是使用的C++,所以套上一层extern "C"是必须要做的事情。
这里的源码直接抄的猫哥的,做一个示范。
在Github中带了一个用FFmpeg去解码mp3->pcm的样例,当然里面有很多功能感觉也没用到吧,主要做了一个解释,详细看关注点,当然我也在源码中提了一些问题,你要是知道怎么解决,或者有什么新的问题,发评论啊、发邮件之类的,我会继续探索的。之后理解的差不多了就会自己再开一个项目动手开发的,希望这个学习项目你们也能star,嘿嘿嘿。
以上就是我的学习成果,如果有什么我没有思考到的地方或是文章内存在错误,欢迎与我分享。
原文 【从零冲击音视频开发】FFmpeg的介绍和基本使用 - 掘金
最近英雄联盟官方微博发了有关电竞圈的颜值担当的话题,其中一个选手篇也是引起了大家的热议,网友们分享了很多职业选手的帅照,让我们来一起看看吧!
Zzr
Zzr原是Snake战队的打野,目前已经退役,不过依然活跃在电竞圈中,还成了电竞圈的著名表情包发源地,同时也是著名的猪仔,虽然Zzr打职业时没什么特别的成绩,但是颜值还是没的说的,下图是英雄联盟官博挑出的帅照。
无状态
曾是OMG黑暗势力的可靠小弟,也被大家评为LPL昔日最强国产中单,在S5春季赛时期各项数据第一,还曾被拳头评为世界第二中单,仅次于Faker。OMG作为昔日天团,队里的选手颜值一个个都非常能打,无状态当然也是不例外的,拥有许多帅照,粉丝们评论说真人更帅。
正所谓光头是检验颜值的标准,而无状态之前还剃过光头,而这光头照竟然也挺帅的!
游戏打得好长得帅,自然是俘获了一堆迷妹的心,不过如今2019LPL春季赛已经接近尾声,无状态也很久没有出现了,在离开FPX战队之后,无状态还没有加入其它队伍,他表示打算休息一段时间,粉丝们甚是想念,不过就在昨天下午,他宣布将于3月17人晚上7点在虎牙首播。
说起来虎牙直播已经签了许多职业明星选手,如LOL圈的Uzi、姿态以及吃鸡圈韦神的4AM战队队员等等,如今又签了昔日最强中单无状态,也是非常吸引人了。
Mystic
Mystic的帅照那可就数不清了,就连老婆都很美,这张两人的证件照也是让众多网友感叹道神仙夫妇。
诺夏
诺夏也曾是黑暗势力OMG的一员,真正的古风美男,退役之后诺夏经常发布自己的写真,cos照等等,随便微博翻一翻都是一张帅照。就连女装都很美。
好了,今天的LPL选手帅照大盘点就到这里了,大家也可以留言提名LPL的选手帅照~
2021年英雄联盟半决赛第一场dkVSt哪个队赢了,lpl选手帅照