1, 在做音频推流的时候,使用 ffmpeg -re -i waving_flag.mp3 -c copy -f mpegts udp://224.0.1.1:8090 推流.
ffplay -f mpegts udp://224.0.1.1:8090 -fflags nobuffer 拉流播放没有问题.
2, 但是在使用 ffmpeg -re -i waving_flag.wav -c copy -f mpegts udp://224.0.1.1:8090 推流时
ffplay -f mpegts udp://224.0.1.1:8090 -fflags nobuffer 拉流就播放不了.
提示Failed to open file 'udp://224.0.1.1:8090' or configure filtergraph
把推流指令中的 -c copy 给去掉是可以正常拉流播放了.
3, 在使用我自己仿照雷博主使用ffmpeg SDK写的一个推流代码, 在输入为MP3格式文件时,能正常推出来, 使用 ffplay -f mpegts udp://224.0.1.1:8090 -fflags nobuffer 拉流是没有问题的
但是在选择输入音频格式的文件为aac时, 推流是正常的,可拉流这边就提示:
Header missing
Could not find codec parameters for stream 0 (Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, s16p): unspecified frame size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'udp://224.0.1.1:8090':
Duration: N/A, start: 0.000000, bitrate: N/A
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels, s16p
Failed to open file 'udp://224.0.1.1:8090' or configure filtergraph
这里显示 Audio: mp3 可我明明输入的是aac 格式的文件.
为什么使用指令的时候,可以正常拉流播放, 在不加-c copy时, ffmpeg库内部做了哪些处理, 我仿照雷博主的这个推流代码应该怎么去改进,才能让他兼容更多的音频格式?
我想法就是: 是不是将输入的文件进行解码后重定向再统一编码为MP3格式推流出去吗?