使用ffmpeg和nginx实时流式传输.webm文件

时间:2017-12-08 09:03:47

标签: ubuntu nginx ffmpeg webm mpeg-dash

您好我是ffmpeg的新手,我需要一些有关.webm文件的实时流式传输的帮助。我有一个.webm文件,其中只包含vp9编解码器which needs to be live streamed (preferably without transcoding and streamed using DASH`中的视频。我已经使用以下配置从(https://github.com/arut/nginx-ts-module#features)编译了nginx和nginx-ts-module

nginx version: nginx/1.12.1
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_sub_module --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-mail=dynamic --with-mail_ssl_module --add-dynamic-module=/home/ubuntu/NGINX/nginx-ts-module-master

媒体文件具有以下属性(使用mediainfo获得):

General
Complete name                            : video_4_1_Admin_0.webm
Format                                   : WebM
Format version                           : Version 2
File size                                : 19.7 MiB
Duration                                 : 1ms
Overall bit rate                         : 165 Gbps
Writing library                          : libwebm-0.2.1.0
Video
ID                                       : 1
Format                                   : VP9
Codec ID                                 : V_VP9
Width                                    : 320 pixels
Height                                   : 180 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Language                                 : English
Default                                  : Yes
Forced                                   : No

我正在尝试使用以下

来传输文件
ffmpeg -re -i video_4_1_Admin_0.webm -bsf:v vp9_superframe -c copy -f webm_chunk  http://127.0.0.1:8000/publish/sintel

我收到以下错误

Input #0, matroska,webm, from 'video_4_1_Admin_0.webm':
  Metadata:
    encoder         : libwebm-0.2.1.0
  Duration: 00:00:00.00, start: 0.000000, bitrate: 174444152 kb/s
    Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 320x180, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Output #0, webm_chunk, to 'http://127.0.0.1:8000/publish/sintel':
Output file #0 does not contain any stream

我不确定传递给ffmpeg的确切选项是什么,以便它创建.mpd和所需的块,这将允许我LiveStream媒体,我尝试替换给出的选项示例(https://github.com/arut/nginx-ts-module#features)与vp9等效的内容。但是,我不确定。有人可以帮帮我吗?提前致谢

1 个答案:

答案 0 :(得分:1)

WebM不是MPEG-TS。

Nginx不适合您的用例。你可以改用Icecast。