# ffmpeg-nginx-ubuntu1804 **Repository Path**: seanpan2016/ffmpeg-ubuntu1804 ## Basic Information - **Project Name**: ffmpeg-nginx-ubuntu1804 - **Description**: ubuntu1804上编译ffmpeg和nginx-rtmp server - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-03-18 - **Last Updated**: 2023-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ----------------------build ffmpeg--------------------------------- 1.sudo apt install cmake-curses-gui 2.tar -zxf x265_3.2.tar.gz cd build/linux/ ./make-Makefiles.bash make -j12 sudo make install 3. 编译speex: tar -zxf speex-1.2.1.tar.gz ./configure make -j12 && sudo make install 4. 编译mp3lame tar -zxf lame-3.100.tar.gz cd lame-3.100/ ./configure --enable-shared make -j12 && sudo make install 5. 编译fdk-aac tar -zxf fdk-aac-2.0.2.tar.gz ./configure --enable-shared make -j12 && sudo make install 6. 编译x264 tar -jxf x264-master.tar.bz2 ./configure --enable-shared --disable-asm make -j12 && sudo make install export PKG_CONFIG_PATH=/usr/local/x264/lib/pkgconfig 7. 编译SDL git clone https://github.com/libsdl-org/SDL.git git checkout --track origin/release-2.26.x ./configure --enable-shared make -j12 && sudo make install 8. 编译ffmpeg ./configure --enable-gpl --enable-nonfree --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --------------------nginx rtmp server ------------------- 1.$sudo apt-get install libssl-dev libpcre3 libpcre3-dev openssl zlib1g-dev 2.$tar -zxvf nginx-1.14.2.tar.gz 3.$./configure --add-module=/home/xx/Desktop/nginx-rtmp-module-master mkae && sudo make install 4.执行完上述命令后我们会发现在/usr/local下会出现nginx目录 5.启动nginx: $sudo /usr/local/nginx/sbin/nginx $ ps -ef | grep nginx root 22744 1778 0 20:08 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 22745 22744 0 20:08 ? 00:00:00 nginx: worker process ![输入图片说明](https://foruda.gitee.com/images/1679111439575640268/a218c88a_797310.png "屏幕截图") 6、使用FFmpeg将视频推流到nginx,通过vlc拉流播放(通过命令的方式) 安装完FFmpeg,nginx,nginx-rtmp-module,vlc后就可以进行推流、拉流测试了。 ffmpeg和vlc都安装在windows中(win10)。 7.nginx配置 nginx的rtmp功能配置和直播状态监听配置,编辑/usr/local/nginx/conf/nginx.conf文件 在nginx.conf文件中修改的内容中,新增加的下面的内容是使nginx增加rtmp功能。其中1935是监听的端口,live on表示开启实时 rtmp { server { listen 1935; chunk_size 4096; application live { live on; } } } 在nginx.conf文件的http字段中新增加的下面的内容,是使nginx能具有直播状态监听的功能。其中/home/xx/Desktop/nginx-rtmp-module-master是nginx-rtmp-module的绝对路径,8080是拉流请求的端口号。 server { listen 8080; location /stat{ rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl{ root /home/xx/Desktop/nginx-rtmp-module-master; } } 9. 推流,指的是把采集阶段封包好的内容传输到服务器的过程,主播端把本地采集的语音视频流推送到媒体服务器。就是将现场的视频信号传到网络的过程。 ffmpeg -i video5.mp4 -f flv rtmp://192.168.0.117/live/test1 ffmpeg -i /home/xx/workspace/test/2HDcar.mp4 -f flv rtmp://192.168.0.117/live/test1 其中-i 表示输入流。这里的输入流是mp4文件。-f 表示设定的输出格式。这里因为要推流,推流得使用flv格式,所以设成-f flv。 10. 然后我们在浏览器中输入http://192.168.1.109:8080/stat。其中192.168.1.109是nginx所在的Ubuntu的ip地址,8080是端口号。如下图所示,在下面的页面中我们可以进行直播状态监听了。