ubuntu搭建推流服務器Nginx+rtmp [論壇 - Ubuntu 哈啦]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

« 1 2 (3) 4 5 6 ... 11 »


回覆: ubuntu搭建推流服務器Nginx+rtmp
會員二級
註冊日期:
2017/7/1 0:41
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 152
MP : 22 / 953
EXP: 8
離線
大大你好,為何我多無法產生cfg.sh。在FZ內我多看不到這檔案。
我用大大#3文貼,下大大用指令。
$ ffmpeg -re -i /home/user/Videos/hls/video/test.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film


產生附件,我是那方下錯了………


我多照#8文下去操作………


如果大大願意重新可以寫文如何橾作過程……

謝謝

附件:


docx Doc8.docx 大小: 794.17 KB; 下載次數: 98

2017/7/24 1:26
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18111
EXP: 81
離線
jbyziag 寫到:
大大你好,為何我多無法產生cfg.sh。在FZ內我多看不到這檔案。
我用大大#3文貼,下大大用指令。
$ ffmpeg -re -i /home/user/Videos/hls/video/test.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film

產生附件,我是那方下錯了………

我多照#8文下去操作………

如果大大願意重新可以寫文如何橾作過程……

謝謝


================================================================================

關於

jbyziag 寫到:
大大你好,為何我多無法產生cfg.sh。在FZ內我多看不到這檔案。



您如何產生檔案的,請描述您的操作步驟,或是下了那個指令?
您有提供,我才能有機會瞭解「為何您都無法產生cfg.sh?」。
我在「Doc8.docx」沒有看到相關的操作步驟。

關於如何產生檔案,我之前在「#15」有回覆您了,您再回過頭閱讀,再研究一下。

關於「cfg.sh」這個檔案,在過程中,不一定要產生
產生「cfg.sh」這個檔案,只是在編譯「nginx」那一段,用來輔助「configure」,

你也可以在「nginx」的原始碼那個資料夾,直接執行下面這一段


auto/configure \
	--prefix=/usr/local/nginx \
	--with-pcre=../pcre-8.39 \
	--with-http_ssl_module \
	--with-http_v2_module \
	--with-http_flv_module \
	--with-http_mp4_module \
	--add-module=../nginx-rtmp-module \




關於這個議題,可以參考「鳥哥的 Linux 私房菜 / 第二十一章、軟體安裝:原始碼與 Tarball / 21.1.3 什麼是 make 與 configure」。


另外要注意的,上面那個指令,是要在「nginx」原始碼那個資料夾執行喔,請別弄錯了。
也就是您的「/home/wjfadjwjf/project/nginx-src/nginx」那個資料夾。

還有一個之前沒提過,您若要知道「configure」有那些參數可以下,可以執行下面指令


$ auto/configure --help



會顯示


--help                             print this message

--prefix=PATH                      set installation prefix
--sbin-path=PATH                   set nginx binary pathname
--conf-path=PATH                   set nginx.conf pathname
--error-log-path=PATH              set error log pathname
--pid-path=PATH                    set nginx.pid pathname
--lock-path=PATH                   set nginx.lock pathname

...略...






================================================================================

關於


我用大大#3文貼,下大大用指令。
$ ffmpeg -re -i /home/user/Videos/hls/video/test.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film



關於「/home/user/Videos/hls/video/test.mp4」這個檔案,這只是一個假設路徑,
您個人需要準備一個「test.mp4」這個影片檔
而「test.mp4」這個檔案,您可以任意放置在其他的路徑,若放在其他的路徑,上面的指令要跟著調整就是了。


關於「rtmp://localhost:2016/hls_alic/film」這個URI。

這個是根據下面這個設定,(下面只是擷取,完整的請看上面「回覆#3」的「/usr/local/nginx/conf/nginx.conf」)


#推流其二
application hls_alic {
		live on;
		hls on;
		hls_path /home/user/Videos/hls/www;
		hls_fragment 5s;
}




所以「rtmp://localhost:2016/hls_alic/film」的「hls_alic」,

就是根據「application hls_alic」的那個「hls_alic」而來的。

至於「application hls_alic」的那個「hls_alic」您可以任意改成您想要的名稱,若您改了,
而「rtmp://localhost:2016/hls_alic/film」這也要跟著調整。

例如改成


#推流其二
application hls {
		live on;
		hls on;
		hls_path /home/user/Videos/hls/www;
		hls_fragment 5s;
}



則要跟著調整成「rtmp://localhost:2016/hls/film」。

而「film」,我的猜測,應該是可以任意命名,您可以再測試看看,這部份我沒特地去試,

這個就會影響到下面這一段,


/home/user/Videos/hls/www/film.m3u8
/home/user/Videos/hls/www/film-0.ts
/home/user/Videos/hls/www/film-1.ts
/home/user/Videos/hls/www/film-2.ts
/home/user/Videos/hls/www/film-3.ts
/home/user/Videos/hls/www/film-4.ts
/home/user/Videos/hls/www/film-5.ts



上面這一段怎麼跑出來的,請再回頭看上面「回覆#3」,
或是參考我上面回覆有提到的參考連結「直播協議 hls 筆記」。

而之前一開始提到的「參考文章」也有提。


================================================================================

jbyziag 寫到:
產生附件,我是那方下錯了………

我多照#8文下去操作………



我看了您「回覆 #21」提供的「Doc8.docx」,

您要產生的「install.sh」的內容,跟我要表達的「install.sh」的內容是不一樣的,您再對照看看,
並且您可以跟我說明,您理解到的「install.sh」是做什麼用的,是要達到什麼目標?
您嘗試回答我的這個問題,也許可以輔助您釐清一些認知上的落差。


若您要修改「/usr/local/nginx/conf/nginx.conf」這個檔案
可以執行下面指令

$ sudo vi /usr/local/nginx/conf/nginx.conf



而「vi」可以換成其他的「文字編輯器」,我在「#15」下方,有寫一些文字編輯器簡易的操作,供您入門學習的起點,
請您再依照關鍵字,找尋網路上的參考文章來進一步學習「文字編輯器」的操作。

至於執行「ffmpeg -re -i /home/user/Videos/hls/video/test.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film」那一段,
我剛剛上面有說明了。

================================================================================

關於


如果大大願意重新可以寫文如何橾作過程……

謝謝


我個人傾向,您要不要換個方式,

換由您自己來寫文

您可以嘗試把您自己目前理解到的概念和步驟,從頭到尾,嘗試用文字紀錄下來,

您先別擔心您認知的步驟或概念是對是錯,您就是寫下來,把您理解到的寫下來,

這樣才可以釐清您哪邊的認知,跟我的認知,是有落差的,

否則,我寫的再多,也不見得可以進到您的腦袋。

我上面的所有回覆,其實寫的很多了,也寫了很多範例在「GitHub」上了,
雖然不見得很完全,也不見得表達得很清楚。

我目前想到能做的,就是從旁釐清一些,你我認知上的差異。

所以您可以練習看看,嘗試把您理解到的,用文字紀錄下來,也許您會有不同的靈感出現。

這個方式,提供您參考。



================================================================================

或是另一種可能性,
也許我寫的太多太雜,反而混淆您了,
所以您可以嘗試先忽略我說的,先回過頭看原本一開始您提到的「參考文章」來閱讀,
藉由這樣的交叉對照的方式,也許您不同的階段來閱讀,您收到的也不一樣。


================================================================================

以上提供參考

報告完畢


2017/7/24 9:31
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員二級
註冊日期:
2017/7/1 0:41
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 152
MP : 22 / 953
EXP: 8
離線
大大你好,我要如何下#3這些編譯

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


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 80;
listen 8080;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
#root html;
root /home/user/Videos/hls/www;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.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 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# 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;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

rtmp {
server {
listen 2016; #推流的監聽端口
publish_time_fix on;
#推流其一
application live {
live on; #stream on live allow
allow publish all; # control access privilege
allow play all; # control access privilege
}
#推流其二
application hls_alic {
live on;
hls on;
hls_path /home/user/Videos/hls/www;
hls_fragment 5s;
}
}
}


我放影像檔的路徑

ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test.AVI -c copy -f flv rtmp://localhost:2016/hls_alic/film

ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test1.mpg -c copy -f flv rtmp://localhost:2016/hls_alic/film



我的cfg.sh是這樣編譯,可以嗎?

cat > cfg.sh <<EOF
auto/configure --prefix=/usr/local/nginx \
--with-pcre=../pcre-8.39 \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_mpg_module \
--with-http_AVI_module \
--add-module=../nginx-rtmp-module/
EOF

附件:


docx Doc9.docx 大小: 725.20 KB; 下載次數: 113

2017/7/25 3:03
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18111
EXP: 81
離線
jbyziag 寫到:
大大你好,我要如何下#3這些編譯

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


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 80;
listen 8080;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
#root html;
root /home/user/Videos/hls/www;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.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 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# 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;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

rtmp {
server {
listen 2016; #推流的監聽端口
publish_time_fix on;
#推流其一
application live {
live on; #stream on live allow
allow publish all; # control access privilege
allow play all; # control access privilege
}
#推流其二
application hls_alic {
live on;
hls on;
hls_path /home/user/Videos/hls/www;
hls_fragment 5s;
}
}
}



關於上面這一段內容,並不需要編譯,
當您編譯好「nginx」後,並且安裝到「/usr/local/nginx」之後,
就會存在「/usr/local/nginx/conf/nginx.conf」這個檔案,
請您使用您慣用的「文字編輯器」修改「/usr/local/nginx/conf/nginx.conf」這個檔案。



之前我看您「回覆#16」提供的「Doc6.docx」內容,
您應該已經編譯好「nginx」,並且安裝「nginx」到「/usr/local/nginx」這個路徑了。


================================================================================

jbyziag 寫到:
我放影像檔的路徑

ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test.AVI -c copy -f flv rtmp://localhost:2016/hls_alic/film

ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test1.mpg -c copy -f flv rtmp://localhost:2016/hls_alic/film



我看您「Doc9.docx」,已經有準備影像檔了。

請參考您提到的「參考文章」,
或是上面的「回覆#3
或是之前寫好的另一個「範例說明」,
您再自行研究一下上面的指令的作用。

================================================================================

jbyziag 寫到:
我的cfg.sh是這樣編譯,可以嗎?

cat > cfg.sh <<EOF
auto/configure --prefix=/usr/local/nginx \
--with-pcre=../pcre-8.39 \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_mpg_module \
--with-http_AVI_module \
--add-module=../nginx-rtmp-module/
EOF


這個就留給您自行測試是否可行了。


之前我看您「回覆#16」提供的「Doc6.docx」內容,
您應該已經編譯好「nginx」,並且安裝「nginx」到「/usr/local/nginx」這個路徑了。


我個人一開始就有提到,在回覆您之前,我並沒有碰過這個議題
關於這個議題,我會的範疇,也只侷限在您提到的參考文章裡面的內容,
我目前並沒有再額外做進一步的研究。

我預期的目標,只有協助您瞭解參考文章要表達的概念
當您理解了,剩下深入的議題,就需要您自己舉一反三,自行去探索了。
也就是您還是要回過頭來研究原本的專案「https://github.com/arut/nginx-rtmp-module」,
原專案也有相關的參考文章「Getting started with nginx rtmp」。

================================================================================

以上釐清

報告完畢


2017/7/25 9:07
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員二級
註冊日期:
2017/7/1 0:41
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 152
MP : 22 / 953
EXP: 8
離線
麻煩大大,我跳不出來……

## 方式四

執行下面指令


$ vi test.sh



然後按下「i」,進入「Insert Mode」,

然後將下面三行「複製」,然後「貼上」剛剛開啟的「vi(m)」編輯區。


echo 'yes'
echo 'or'
echo 'no'



這時候按下「Esc」,或是按下「Ctrl+[」,切換到「Normal Mode」。

然後輸入「:」,在畫面最下方,就會看到「:」,也就目前是處在「Command Line Mode」。

這時候只要再輸入「wq」,也就是畫面最下方是顯示「:wq」,這時候按下「Enter」,就會離開「vi(m)」了。

* Learning the vi Editor/Vim/Modes

附件:


docx 10.docx 大小: 691.78 KB; 下載次數: 156

2017/7/26 0:47
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18111
EXP: 81
離線
先提您的遇到的情況

您執行


$ sudo vi /usr/local/nginx/conf/nginx.conf



出現下面類似的訊息


E325: ATTENTION
Found a swap file by the name "/usr/local/nginx/conf/.nginx.conf.swp"
          owned by: root   dated: Wed Jul 26 07:42:37 2017
         file name: /usr/local/nginx/conf/nginx.conf
          modified: yes
         user name: root   host name: ubuntuserverb
        process ID: 3532 (still running)
While opening file "/usr/local/nginx/conf/nginx.conf"
             dated: Wed Jul 26 07:42:25 2017

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r test.sh"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/usr/local/nginx/conf/.nginx.conf.swp"
    to avoid this message.

Swap file "/usr/local/nginx/conf/.nginx.conf.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:




這時候您的操作是按下「o」,

表示您是「Open Read-Only」。

也就是您目前是採用「唯讀」的方式來開啟「/usr/local/nginx/conf/nginx.conf」這個檔案,

當您編輯完後,按下「Esc」回到「Normal Mode」,

然後輸入「:」進到「Command Line Mode」,

您輸入「wq」,也就是畫面下方顯示是「:wq」,然後按下「Enter」,

就會出現「E45: 'readonly' option is set (add ! to override)」這樣的字樣。

您可以再按下「:」,然後輸入「wq!」,這樣就會強制存檔離開了。

若是不存檔,強制離開,則是輸入「q!」。

可以參考「鳥哥的 Linux 私房菜 / 第九章、vim 程式編輯器 / 9.2.2 按鍵說明 / 第三部份:一般指令模式切換到指令列模式的可用按鈕說明

================================================================================

回過頭來提,為什麼一開始會看到上面的提示訊息,

請研讀上面的提示訊息,標紅色藍色的部份。

或是參考「鳥哥的 Linux 私房菜 / 第九章、vim 程式編輯器 / 9.2.4 vim 的暫存檔、救援回復與開啟時的警告訊息


================================================================================

以上釐清

報告完畢

















================================================================================

主要目標是編輯「/usr/local/nginx/conf/nginx.conf」這個檔案。

--------------------------------------------------------------------------------

## 方式一

一種方式是直接編輯「/usr/local/nginx/conf/nginx.conf」這個檔案,

也就是您一開始執行的「sudo vi /usr/local/nginx/conf/nginx.conf」。

然後您編輯「/usr/local/nginx/conf/nginx.conf」這個檔案的內容,編輯成您想要的結果。

--------------------------------------------------------------------------------

## 方式二

或是也可以採用另一種方式,先編輯一個檔案,假設是「/tmp/nginx.conf」,編輯成您想要的結果。
然後再把剛剛編輯好的檔案「/tmp/nginx.conf」複製到「/usr/local/nginx/conf/nginx.conf」。
也就是執行「sudo cp /tmp/nginx.conf /usr/local/nginx/conf/nginx.conf」。

================================================================================

2017/7/26 8:32
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員二級
註冊日期:
2017/7/1 0:41
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 152
MP : 22 / 953
EXP: 8
離線
大大我用#26。編譯好了…
我下這指令
$ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test2.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film

出現下面。是那裏出問題……

附件:


docx 11.docx 大小: 878.62 KB; 下載次數: 113

2017/7/26 22:55
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18111
EXP: 81
離線
jbyziag 寫到:
大大我用#26。編譯好了…
我下這指令
$ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test2.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film

出現下面。是那裏出問題……



從您「回覆#27」提供的「11.docx」,擷取裡面顯示的提示訊息如下


...略...

RTMP_Connect0, failed to connect socket. 111 (Connection refused)
rtmp://localhost:2016/hls_alic/film: Unknown error occurred



================================================================================

當您編輯了「nginx」的設定檔案,也就是編輯好「/usr/local/nginx/conf/nginx.conf」這個檔案後,

--------------------------------------------------------------------------------

若是編輯前,您的「nginx」已經啟動了,您可以執行下面指令來「reload」


$ sudo /usr/local/nginx/sbin/nginx -s reload



--------------------------------------------------------------------------------

若是編輯前,您的「nginx」尚未啟動,您可以執行下面指令來「start」


$ sudo /usr/local/nginx/sbin/nginx



--------------------------------------------------------------------------------

若是編輯前,您的「nginx」已經啟動了,您也可以先把「nginx」先停掉,然後再啟動


$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx



--------------------------------------------------------------------------------

這樣您修改「/usr/local/nginx/conf/nginx.conf」這個檔案的設定後,才會生效

================================================================================

關於這部份,您可以再回過頭來閱讀您提供的「參考文章一」和「參考文章二」。

或是原來專案「https://github.com/arut/nginx-rtmp-module」提供的參考文章「Getting started with nginx rtmp」。

或是參考我之前寫的另一個「範例」,從「nginx 簡易操作」那裡開始。

或是之前「回覆#18」也有提到「nginx」的操作。

也可以參考「nginx」的官方文件「Beginner’s Guide / Starting, Stopping, and Reloading Configuration」。
其他的文件,可以從「https://nginx.org/en/docs/」這裡開始找起。

================================================================================


另外從「11.docx」,看了您的「/usr/local/nginx/conf/nginx.conf」,

裡面有兩個路徑要調整

1. Document Root


location / {
	#root   html;
	root   /home/user/Videos/hls/www;
	index  index.html index.htm;
}



上面您是照抄「回覆#3」,
請您嘗試著思考要怎麼調整。

關於「Document Root」的概念,我之前有在「回覆#19」有給範例了,
您可以參考琢磨看看,看看是否能瞭解「Document Root」的概念。

或是參考「nginx」的官方文件「Beginner’s Guide / Serving Static Content」。


2. hls path


#推流其二
application hls_alic {
		live on;
		hls on;
		hls_path /home/user/Videos/hls/www;
		hls_fragment 5s;
}




上面您是照抄「回覆#3」,
請您嘗試著思考要怎麼調整。

除了「hls path」的概念,
還有「user home path」的概念,

之前在「回覆#12」,有提到「user home path」概念的參考連結,在「家目錄」那。
上面的「/home/user/」我只是假設,您要根據您自己使用的帳號來做調整,


至於「hls path」的設定,也就是上面的「hls_path /home/user/Videos/hls/www;」。
請再參考上面的「回覆#3」和「回覆#22」。


另外我之前還有寫另一個「範例」,設定的路徑,是跟「回覆#3」不一樣的,
您可以對照著參考,並且閱讀「README.md」。

您可以嘗試自己先琢磨看看,看看您是否能理解路徑為什麼要這樣設定。
路徑的設定不是死的,是可以調整,可以活用的。

================================================================================

以上提供參考

報告完畢


2017/7/27 8:36
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員二級
註冊日期:
2017/7/1 0:41
所屬群組:
已註冊使用者
等級: 7
HP : 0 / 152
MP : 22 / 953
EXP: 8
離線
大大我應該推流了

這樣是否推流成功了

ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test2.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film

那大大我要如何看影片?入徑如何輸入……

我用VLC播放如何寫入徑?

附件:


docx Doc12.docx 大小: 663.31 KB; 下載次數: 88

2017/7/27 22:01
應用擴展 工具箱
回覆: ubuntu搭建推流服務器Nginx+rtmp
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18111
EXP: 81
離線
jbyziag 寫到:
大大我應該推流了

這樣是否推流成功了



是的。

jbyziag 寫到:
ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test2.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film

那大大我要如何看影片?入徑如何輸入……

我用VLC播放如何寫入徑?



可以播放影片的網址有兩個,看您是要採用那個「通訊協定(Communications Protocol)」。

================================================================================

## 透過「RTMP」

您可以從上面的指令「 ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test2.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film 」。

找到「 rtmp://localhost:2016/hls_alic/film 」。

所以您採用的播放軟體,只要輸入播放「 rtmp://localhost:2016/hls_alic/film 」,就可以看到影片

以「vlc」為例,

我的環境是「Xubuntu 16.04 amd64 英文界面」,

在同一臺機器測試,

就可以輸入下面指令


$ vlc rtmp://localhost:2016/hls_alic/film



當然您也可以在「圖形界面」來操作

在「vlc」的下拉選單,
選「Midia / Open Network Stream」,就會出現一個對話框,
然後輸入「 rtmp://localhost:2016/hls_alic/film 」,按下「play」按鈕,就可以看到影片。

若是您的「vlc」是在不同的機器,就請自行調整,
把「localhost」改成「IP Address」或是可以辨識那台機器的「Domain Name」或「Host Name」。

例如改成「IP Address」,假設舉例,那台機器是「192.168.1.100」。

就是


$ vlc rtmp://192.168.1.100:2016/hls_alic/film




================================================================================

## 透過「HLS」

我先以「回覆#3」的設定來舉例說明,

其中有一個設定是「hls_path /home/user/Videos/hls/www;」。

所以當您執行了「ffmpeg -re -i /home/wjfadiwjf/user/Videos/hls/video/test2.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film 」這個指令以後,

您可以到「/home/user/Videos/hls/www」這個資料夾來看,

您會看到陸續會產生一些檔案類似如下的檔案


/home/user/Videos/hls/www/film.m3u8
/home/user/Videos/hls/www/film-0.ts
/home/user/Videos/hls/www/film-1.ts
/home/user/Videos/hls/www/film-2.ts
/home/user/Videos/hls/www/film-3.ts
/home/user/Videos/hls/www/film-4.ts
/home/user/Videos/hls/www/film-5.ts
...



然後根據另一個設定


server {
	#listen	   80;
	listen	   8080;
	server_name  localhost;

	location / {
		#root   html;
		root   /home/user/Videos/hls/www;
		index  index.html index.htm;
	}



也就是我把「Document Root」改到「/home/user/Videos/hls/www」,

所以您可以播放影片的另一個網址,就是「 http://localhost:8080/film.m3u8 」。

也就是您可以執行下面指令來播放影片


$ vlc http://localhost:8080/film.m3u8



一樣的,您也可以透過「vlc」的「圖形界面」來操作,輸入「 http://localhost:8080/film.m3u8 」來播放。

甚至,您可以參考原來「參考文章」,
透過「網頁」的方式來播放,

您只要把該網頁放在「/home/user/Videos/hls/www/」這個資料夾底下就行了,

例如:您可以放在「/home/user/Videos/hls/www/live.html」,
該網頁的網址就會是「 http://localhost:8080/live.html 」。

我之前有寫另一個「範例」,裡面就有提供「live.html」。

不過該範例的路徑設定,和「回覆#3」路徑設定的是不一樣的,

我在「回覆#8」最下方有提到

samwhelp 寫到:

另外寫了一個「範例」,

不同的地方,在於「nginx」安裝的路徑,改安裝到「/usr/local/share/nginx」,

然後「HTTP Document Root」的路徑「/usr/local/share/nginx/html」,

而「RTMP HLS」的路徑,則是設定到「/usr/local/share/nginx/html/hls」。



所以請不要混淆了,

請試著思索,如何修改「live.html」,適合您自己的設定,

不然就還是請您參考原來的「參考文章」,

因為「live.html」就是根據「參考文章」裡面提到的內容,修改而來的。

給您不同的範例,只是要給您參考對照用,用來輔助您理解原來的「參考文章」要表達的概念。

上面的回覆也一直有提到,查詢「hls」,可以找到一篇「直播協議 hls 筆記」。

您也可以對照著看,裡面有提到「hls」的概念。

================================================================================

以上提供參考

報告完畢


2017/7/28 9:30
應用擴展 工具箱

« 1 2 (3) 4 5 6 ... 11 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.