原创 SDL2庫(4)-Android 端源碼簡要分析(AudioSubSystem)

Android 部分源碼分析Android部分的初始化和視頻部分基本相同。 這裏簡單看一下。在SDLActivity中調用了 SDL.setupJNI()。SDL.setupJNI()中 SDLAudioManager.nativeSet

原创 Android PC投屏簡單嘗試(錄屏直播)3—軟解章(ImageReader+FFMpeg with X264)

使用FFmpeg進行軟件解碼並通過RTMP進行推流編譯帶有x264的FFmpeg編寫FFmpeg代碼進行推流通過ImageReader的回調,我們就可以得到截屏的數據了。第一遍文章是通過自定義的Socket 協議進行傳輸。這裏通過FFmpe

原创 SDL2庫(3)-Android 端源碼簡要分析(VideoSubSystem)參考

SDL.png項目位置 https://github.com/deepsadness/SDLCmakeDemo系列內容導讀SDL2-移植Android Studio+CMakeList集成Android端FFmpeg +SDL2的簡單播放器

原创 SDL2庫(1)-移植Android 端 CMakeList 集成

SDL.png項目位置 https://github.com/deepsadness/SDLCmakeDemo簡單的集成1. 獲取源代碼SDL的源代碼獲取十分簡單。訪問SDL的官方網站(http://www.libsdl.org/),單擊左

原创 SDL2庫(2)-Android 端集成FFmpeg及簡單的播放器

image.png項目位置 https://github.com/deepsadness/SDLCmakeDemo將編譯好的FFmpeg集成進來。編譯FFmpeg FFMpeg編譯部分的內容可以看之前的文章CMakeList 編寫# 添加

原创 ffplay.c 源碼分析- 視頻部分

FFmpeg 代碼 version 3.3:ffplay中的線程模型ffplay線程模型-視頻爲例.png概述ffplay.c 中線程模型簡單命令。主要是有如下幾個線程: 1. 渲染的線程-主線程 簡單的理解,來說就是main方法運行所

原创 Android PC投屏簡單嘗試(錄屏直播)2—硬解章(MediaCodec+RMTP)

代碼地址 :https://github.com/deepsadness/MediaProjectionDemo想法來源上一邊文章的最後說使用錄製的Api進行錄屏直播。本來這邊文章是預計在5月份完成的。結果過了這麼久,終於有時間了。就來填坑

原创 偶遇FFmpeg(番外)——FFmpeg花樣編譯入魔1之裁剪大小

目標確定- 不擇手段得最小在偶遇FFmpeg(三)——Android集成這邊文章中曾經介紹過FFmpeg和Android的交叉編譯。文章中也提到過如何裁剪SO文件大小的方式。 這邊文章就這個問題。進行實戰。例子實戰下面將會用這個需求的例子

原创 WAV文件格式解析及處理

RIFF file formatRIFF全稱爲資源互換文件格式(Resources Interchange File Format),是Windows下大部分多媒體文件遵循的一種文件結構。RIFF文件所包含的數據類型由該文件的擴展名來標識C

原创 偶遇FFmpeg(番外)——FFmpeg花樣編譯入魔2之單個SO庫和ndk15之後單個SO文件

單個SO文件1. 編譯o文件 --disable-shared \ --enable-static \因爲最後會將文件合成libffmpeg.so文件,所以就不需要去改configure文件了!!2. 這些o文件link到一起,變成lib

原创 Android OpenGL ES(八) - 簡單實現綠幕摳圖

實現綠幕摳圖,其實想法很簡單。 這裏簡單粗暴的使用着色器替換。OES Filter直接實現在相機預覽上的Shader#extension GL_OES_EGL_image_external : require precision medi

原创 Android OpenGL ES(七) - 生成抖音照片電影

image.png之前我們結合相機和視頻,結合濾鏡,做了實時的預覽和錄製。 這期,我們來試試利用OpenGL+MediaCodc,不進行預覽直接錄製成視頻的情況。兩個問題錄製視頻的開始,我們先來思考兩個問題:如何直接生成影片。(不同於之前

原创 Android OpenGL ES(六) - 將輸入源換成視頻

cover.png上文中,我們是將相機提供的預覽畫面輸入到Surface當中,然後進行濾鏡處理和錄製。 那我們可以切換輸入源爲視頻嗎?整體流程理解整體流程.png對比對比上文的整體流程,和本文的主題,當然唯一不同的就是我們的輸入到Surf

原创 Android OpenGL ES(六)-給相機添加濾鏡

上文中我們已經實現了將OpenGL和相機結合到一起,本文就在上文的基礎上,添加濾鏡。整體流程理解添加濾鏡後的整體流程.png上編文章,我們是直接繪製OES的紋理。這裏,因爲要添加濾鏡的效果。所以我們需要將紋理進行處理。離屏繪製離屏繪製.pn

原创 Android OpenGL ES(五)-結合相機

上文中我們已經實現了在紋理上添加濾鏡的效果。這編文章就是將OpenGl和相機結合到一起。整體流程理解image.png將Camera中得到的ImageStream由SurfaceTexture接受,並轉換成OpenGL ES紋理。創建GLS