我正在尝试安全地传输视频,以下是我尝试过的方法:
控制台 1
$ ffmpeg -i out.webm -f format tls://127.0.0.1:8554?listen&cert=test.crt&key=test.key
[1] 46061
[2] 46062
$ ffmpeg version N-81392-ga453bbb Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.2) 20160609
configuration: --pkg-config-flags=--static --enable-shared --enable-pic --enable-libvpx --prefix=/home/ytan/Dev/build-x64
libavutil 55. 29.100 / 55. 29.100
libavcodec 57. 54.100 / 57. 54.100
libavformat 57. 47.101 / 57. 47.101
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 52.100 / 6. 52.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
(...waiting indefinitely)
控制台 2
$ ffplay tls://127.0.0.1:8554
ffplay version N-81392-ga453bbb Copyright (c) 2003-2016 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.2) 20160609
configuration:
libavutil 55. 29.100 / 55. 29.100
libavcodec 57. 54.100 / 57. 54.100
libavformat 57. 47.101 / 57. 47.101
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 52.100 / 6. 52.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
tls://127.0.0.1:8554: Protocol not foundq= 0KB sq= 0B f=0/0
$
我已经使用 OpenSSL 生成了密钥和证书:
$ openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt
$ sudo cp test.crt /usr/local/share/ca-certificates/
$ sudo update-ca-certificates
有人可以给我提示或指点吗?
答案1
我意识到 tls 默认不包含在 ffmpeg 中。
$ ffplay -protocols
我列出了所有可用的协议,但没有找到“tls”。我不得不用标志重建我的 ffmpeg --enable-openssl
。
感谢 Reindl 和 Moritz(ffmpeg 用户邮件列表)