導航:首頁 > 操作系統 > androidx264編碼

androidx264編碼

發布時間:2022-12-12 08:14:03

android-ffmpeg-x264 怎麼用

Android內置的編解碼器實在太少,於是我們需要FFmpeg。Android提供了NDK,為我們使用FFmpeg這種C語言代碼提供了方便。
不過為了用NDK編譯FFmpeg,還真的花費了不少時間,也得到了很多人的幫助,最應該謝謝havlenapetr。我覺得我現在這些方法算是比較簡潔的了--
下面就盡量詳細的說一下我是怎麼在項目中使用FFmpeg的,但是基於我混亂的表達能力,有不明白的就問我。
你得了解JNI和Android NDK的基本用法,若覺得我的文章還不錯,可以看之前寫的JNI簡單入門和Android NDK入門
首先創建一個標準的Android項目vPlayer
android create project -n vPlayer -t 8 -p vPlayer -k me.abitno.vplayer -a PlayerView
然後在vPlayer目錄里
mkdir jni && cd jni
wget http://ffmpeg.org/releases/ffmpeg-0.6.tar.bz2
tar xf ffmpeg-0.6.tar.bz2 && mv ffmpeg-0.6 ffmpeg && cd ffmpeg
在ffmpeg下新建一個config.sh,內容如下,注意把PREBUILT和PLATFORM設置正確。另外裡面有些參數你也可以自行調整,我主要是為了配置一個播放器而這樣設置的。
#!/bin/bash

PREBUILT=/home/abitno/Android/android-ndk-r4/build/prebuilt/linux-x86/arm-eabi-4.4.0
PLATFORM=/home/abitno/Android/android-ndk-r4/build/platforms/android-8/arch-arm

./configure --target-os=linux \
--arch=arm \
--enable-version3 \
--enable-gpl \
--enable-nonfree \
--disable-stripping \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-ffprobe \
--disable-encoders \
--disable-muxers \
--disable-devices \
--disable-protocols \
--enable-protocol=file \
--enable-avfilter \
--disable-network \
--disable-mpegaudio-hp \
--disable-avdevice \
--enable-cross-compile \
--cc=$PREBUILT/bin/arm-eabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-eabi- \
--nm=$PREBUILT/bin/arm-eabi-nm \
--extra-cflags="-fPIC -DANDROID" \
--disable-asm \
--enable-neon \
--enable-armv5te \
--extra-ldflags="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"
運行config.sh開始configure
chmod +x config.sh
./config.sh
configure完成後,編輯剛剛生成的config.h,找到這句
#define restrict restrict
Android的GCC不支持restrict關鍵字,於是修改成下面這樣
#define restrict
編輯libavutil/libm.h,把其中的static方法都刪除。

❷ android手機用x264編碼能達到什麼速度呢和intel的cpu差距大嗎

我在網上找了一段300幀的yuv視頻
Input #0, yuv4mpegpipe, from 'akiyo_qcif.y4m':0KB sq= 0B f=0/0
Duration: N/A, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 176x144, SAR 128:
117 DAR 1408:1053, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc

一下是三種不同的測試結果
x264 只使用1個核心

x264 使用4個核心

x264 自動識別核心數

使用單線程,每秒處理80幀
四線程,立刻飆升到每秒196幀
自動模式(這里返回值也會是4),162幀
由於這里測試並沒有進行多次取平均數,只是為驗證多線程在多核下的提升,所以可以總結出
性能提升非常明顯,有興趣的朋友,可以下載我的x264 armv7 neon 多核測試包試試

❸ Android如何播放mov格式的視頻文件

Android播放「mov」格式的視頻文件時,可以藉助第三方軟體將「mov」格式轉換成「mp4」。

此處以微信為例,具體步驟如下:

1、打開安卓手機的微信軟體,點開任意聊天框將「mov」格式的視頻發送過去。


(3)androidx264編碼擴展閱讀:

MP4與MOV的區別:

「mp4」格式的視頻相比起「mov」格式的視頻體積要小得多,前者格式壓縮率相比後者要大得多,雖然相對來說更省存儲空間,但畫質將會受到影響,很不利於後期編輯和製作,尤其是後期特效和調色。

這一點很像數碼相機的RAW格式和jpeg格式,前者為無損壓縮格式後者則是有損壓縮格式,前者的後期調整餘地更大。這也是很多資深的攝影者更願意用前者拍攝的原因。

閱讀全文

與androidx264編碼相關的資料

熱點內容
linux硬體配置命令 瀏覽:948
java6webservice 瀏覽:450
硬體加密的未來發展趨勢 瀏覽:589
釘釘上文件夾怎麼做 瀏覽:277
編譯動物之塔 瀏覽:613
玩嘻哈必下的app在哪裡下 瀏覽:210
談談如何給文件夾或文件加密 瀏覽:37
螺桿式壓縮機溫度計 瀏覽:706
gnu編譯器pdf 瀏覽:463
稀有程序員圖片 瀏覽:43
linux系統有哪些版本的 瀏覽:149
黑月編譯器優缺點 瀏覽:685
線刷包為啥要解壓 瀏覽:149
伺服器滑道怎麼安裝 瀏覽:700
手游發貨伺服器是什麼 瀏覽:711
文件夾的各個名稱 瀏覽:724
安卓系統哪個文件夾存放密碼文件 瀏覽:363
傳真伺服器什麼意思 瀏覽:251
stm3251單片機 瀏覽:281
怎麼做程序員男友 瀏覽:828