FFmpeg 推流之 RTMP X264與交叉編譯

2021-09-24 01:14:59 字數 2107 閱讀 3549

並在rtmpdump目錄下建立cmakelists.txt檔案

cmakelists中配置rtmpdump的靜態庫

cmake_minimum_required(version 3.4.1)

#預編譯巨集

set(cmake_c_flags "$ -dno_crypto" )

file(glob rtmp_source *.c)

add_library(

rtmpdump

static$)

在最外層的cmakelists中引入rtmpdump的cmakelists檔案

add_subdirectory(rtmpdump) //新增rtmpdump目錄下的cmakelists檔案

//鏈結rtmp庫

target_link_libraries(

native-lib

rtmpdump #鏈結rtmp庫

$)

呼叫 rtmp_alloc();執行成功說明 rtmpdump引入成功

x264是乙個c語言編寫的目前對h.264標準支援最完善的編譯碼庫。與rtmpdump一樣同樣直接在android中使用,也可以整合進入ffmpeg。

在根目錄下建立build.s**件

#!/bin/bash

prefix=./android/armeabi-v7a

toolchain=$ndk_root/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

flags="-isysroot $ndk_root/sysroot -isystem $ndk_root/sysroot/usr/include/arm-linux-androideabi -d__android_api__=17 -g -dandroid -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -wa,--noexecstack -wformat -werror=format-security -o0 -fpic"

#--disable-cli 不需要命令列工具

#--enable-static 靜態庫

#和ffmpeg差不多

./configure \

--prefix=$prefix \

--disable-cli \

--enable-static \

--enable-pic \

--host=arm-linux \

--cross-prefix=$toolchain/bin/arm-linux-androideabi- \

--sysroot=$ndk_root/platforms/android-17/arch-arm \

--extra-cflags="$flags"

make clean

make install

將標頭檔案拷貝到cpp/x264/include目錄下

編寫cmakelists.txt檔案

include_directories(x264/include) //匯入 x264標頭檔案

set(cmake_cxx_flags "$ -l$/../../../libs/$") //設定靜態庫的標頭檔案

target_link_libraries(

native-lib

rtmpdump #鏈結rtmp庫

x264 #鏈結x264庫

$)

Windows環境下FFmpeg推流命令集合

建議使用官網最新的 ffmpeg.exe api文件 ffmpeg f gdigrab video size 1920x1080 i desktop r 20 vf scale 1920x1080 vcodec libx264 preset ultrafast pix fmt yuv420p f f...

ffmpeg使用指令實現推流實現直播流程

windows下用ffmpeg nginx rtmp搭建直播環境 實現推流 拉流 啟動nginx 進入nginx的目錄,執行其中rtmp檔案。執行下列 cd g studyprojects setupvideoservice nginx 1.7.11 3 gryphon nginx.exe c co...

關於使用FFmpeg推流時,live目錄的理解

根據博主之前的博文 在windows下搭建 配置nginx流 伺服器,並進行rtmp流的推流 拉流測試 搭建好nginx流 伺服器後,可能有些朋友會對博文裡面進行推流測試的指令 ffmpeg i video3.mp4 f flv rtmp 中的 live 有一些不理解。live 其實是乙個虛擬目錄,...