ffmpeg - 如何让icecast从ffmpeg中继mp3流的元数据?
问题描述
我正在尝试使用以下命令中继互联网广播流:
ffmpeg -re -i 'http://internetradiourl'-vn -acodec copy -f tee -map 0:a "[f=mp3]icecast://source:pass@icecast:8000/a|[f=mp3]icecast://source:pass@icecast:8000/b"
输出流包含所有元数据:
Output #0, tee, to '[f=mp3]icecast://source:pass@icecast:8000/a|[f=mp3]icecast://source:pass@icecast:8000/b':
Metadata:
audiocodec : MP3
audiodevice : IN 1+2 (Digigram LoLa280)
audiodeviceid : e08a462b-2944-4abf-894a-5d5e8649452d
type : event
encoderMachineName: ERADIO
hasAudio : true
hasCuePoints : true
hasKeyframes : true
hasVideo : false
source : MediaProxy 4.4.13.6
name : ad
ad_type : endbreak
cue_id : b6c7ff39-2103-4442-bdc8-35f8ba2bb97d
cue_time_duration: 44.365
cue_time_start : 1610035039552
cue_title : PSA - Danny - Parking (Jun 2020)
encoder : Lavf58.45.100
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 98304 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (copy)
但是如果客户端连接到 icecast 服务器,元数据就会丢失:
ffprobe https://icecasturl/a
Input #0, mp3, from 'https://icecasturl/a':
Metadata:
icy-pub : 0
icy-metadata : 1
StreamTitle :
Duration: N/A, start: 0.000000, bitrate: 96 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 96 kb/s
如何配置 icecast 以便转发源流的所有元数据?
解决方案
请考虑使用 Icecast 直接中继。
相关文档在这里:https ://icecast.org/docs/icecast-2.4.1/relaying.html
在这个用例中没有特别的理由使用 ffmpeg。
推荐阅读
- angular - 引导轮播不适用于 angular6
- c++ - 向量将所有负值转换为零
- c# - 我是否应该始终将整个文档发布到更新 MongoDB 的命令中?
- c - 如何使用 LibRaw(c++) 获取 CR2 图像的原始数据
- powershell - PowerShell错误,主域和可信域之间的信任关系失败
- postgresql - EF Core 在使用 CompareOptions 比较字符串时抛出 NullReferenceException
- c# - 下载不带 url C# 前缀的图片
- php - 在 PHP 中将 mysql 列中的数据显示为行
- javascript - 在 javascript 中通过 EventSource 创建的提要上的事件侦听器
- ruby-on-rails - 提交表单时出现“没有路线匹配 [POST]”错误