1. Compile nginx that can be used in android and add the option -- add-module =/path/nginx-rtmp-module, prepare ffmpeg files and related library files that can be used by shell on android and m3u8 segmenter files.
2. Put the compiled nginx files in the data/android. nginx directory of the mobile phone to this directory.
3. Compile the configuration file
--------------------------------- Nginx. conf start here ----------------------------------------------------
User root;
Worker_processes 2;
Error_log/data/android. nginx/logs/error. log;
Error_log/data/android. nginx/logs/error. log notice;
Error_log/data/android. nginx/logs/error. log info;
Pid logs/nginx. pid;
Events {
Worker_connections 1024;
}
Rtmp {
Server {
Listen 1935;
Chunk_size 4096;
Application myapp {
Live on;
}
}
}
Http {
Include mime. types;
Default_type application/octet-stream;
# Log_format main '$ remote_addr-$ remote_user [$ time_local] "$ request "'
# '$ Status $ body_bytes_sent "$ http_referer "'
# '"$ Http_user_agent" "$ http_x_forwarded_for "';
# Access_log logs/access. log main;
Sendfile on;
# Tcp_nopush on;
# Keepalive_timeout 0;
Keepalive_timeout 65;
# Gzip on;
Server {
Listen 801;
Location/stat {
Rtmp_stat all;
Rtmp_stat_stylesheet stat. xsl;
}
Location/stat. xsl {
Root/data/android. rtmp;
}
Location /{
Root/data/android. rtmp/test/rtmp-publisher;
}
}
Server {
Listen 80 default;
Server_name localhost;
Autoindex on;
Autoindex_exact_size on;
Root/data/android. wwwroot;
Index index.html index.htm index. php;
# Charset koi8-r;
# Access_log logs/host. access. log main;
# Error_page 404/404 .html;
# Redirect server error pages to the static page/50x.html
#
Error_page 500 502 503 x.html;
Location =/50x.html {
Root html;
}
# Proxy the PHP scripts to Apache listening on 127.0.0.1: 80
#
# Location ~ \. Php $ {
# Proxy_pass http: // 127.0.0.1;
#}
# Pass the PHP scripts to FastCGI server listening on Fig: 9000
#
Location ~ * \. Php $ {
Fastcgi_index index. php;
Client_max_body_size 64 m;
Fastcgi_pass unix:/data/android. php-fpm/tmp/php-fpm.socket;
Fastcgi_param SCRIPT_FILENAME/data/android. wwwroot $ fastcgi_script_name;
Include fastcgi_params;
}
Location ~ \. Flv $ {
Flv;
}
Location ~ \. Mp4 $ {
Mp4;
}
# Deny access to. htaccess files, if Apache's document root
# Concurs with nginx's one
#
# Location ~ /\. Ht {
# Deny all;
#}
}
# Another virtual host using mix of IP-, name-, and port-based configuration
#
# Server {
# Listen 8000 default;
# Listen somename: 8080;
# Server_name somename alias another. alias;
# Location /{
# Root html;
# Index index.html index.htm;
#}
#}
# HTTPS server
#
# Server {
# Listen 443 default;
# Server_name localhost;
# Ssl on;
# Ssl_certificate cert. pem;
# Ssl_certificate_key cert. key;
# Ssl_session_timeout 5 m;
# Ssl_protocols SSLv2 SSLv3 TLSv1;
# Ssl_ciphers HIGH :! ANULL :! MD5;
# Ssl_prefer_server_ciphers on;
# Location /{
# Root html;
# Index index.html index.htm;
#}
#}
}
----------------------------------- Nginx. conf end here ----------------------------------------------------
4. adb pushes nginx. conf/data/android. nginx/conf/
5. Start nginx and run./nginx-c./conf/nginx. conf in the/data/android. nginx directory.
6. Prepare the ffmpeg file.
Adb shell
Su
Chmod 777/system/bin/
Adb push ffmpeg/system/bin/
Adb shell
Su
Cd system/bin
Chmod 777 ffmpeg
Exit
Exit
Adb push libvorbisenc. so.2/system/lib
Adb push libvorbis. so.0/system/lib
Adb push libogg. so.0/system/lib
Adb push libtheoraenc. so.1/system/lib
Adb push libtheoradec. so.1/system/lib
Adb push libmp 3lame. so.0/system/lib
Adb push libfdk-aac.so.0/system/lib
Adb push segmenter/system/bin
Adb shell
Su
Cd/system/bin
Chmod 777 segmenter
Exit
Exit
7. Prepare relevant documents
Adb push 1.flv/data/android. wwwroot/
8. Prepare rtmp files.
Create the rtmp directory under the/data/directory and use the adb push method to push all files under the nginx-rtmp-module Directory to the/data/rtmp directory.
Modify./test/rtmp-publisher/player.html under this directory
---------------------------Player.html start here ---------------------------------------------------------------
! DOCTYPE html>
RTMP Player
<Script type = "text/javascript" src = "swfobject. js"> </script>
<Script type = "text/javascript">
Var flashVars = {
Streamer: 'rtmp: // 192.168.1.2/myapp ',
File: 'test1'
};
Swfobject. embedSWF ("RtmpPlayer.swf", "rtmp-publisher", "500", "400", "9.0.0", null, flashVars );
</Script>
Flash not installed
---------------------------Player.html end here ---------------------------------------------------------------
9. streaming
"Rtmp: // 192.168.1.2/myapp" indicates url, and "test1" indicates stream
Streaming Method 1: ffmpeg-re-I 1.flv-f flv rtmp: // 192.168.1.2/myapp/test1
Note: push the related files
Here I will write this simple as pushrtmp Batch Processing
------------------------------- Pushrtmp start here -----------------------------------------------------------
! /System/bin/sh
File = $1
File_name = 'echo $ {file} | busybox awk-F'. ''{print $1 ""}''
Ffmpeg-re-I./$ 1.flv-f flv rtmp: // 192.168.1. $2/myapp/test1
--------------------------------- Pushrtmp end here -----------------------------------------------------------
The execution method is simple./pushrtmp 1 2.
10. Test
Access http: // 192.168.1.2: 801/player.html on another machine.