小编Ale*_*kov的帖子

从 ffmpeg 通过 Janus 流式传输的 H264 WebRTC 视频在播放时非常不稳定

尝试通过以下链流式传输视频:本地实例存储 (AWS) 上的 h264/mp​​4 文件->ffmpeg->rtp->同一实例上的 Janus->WebRTC 播放 (Chrome/mac)。即使没有任何资源似乎超载(所涉及的任何系统上的 CPU/内存/网络带宽),生成的视频也是断断续续的。我也使用 Coturn TURN 服务器,它也根本没有加载并且带宽充足。

尝试切换编解码器,除了 vp8 没有帮助,虽然它可以工作(有点 - 波动仍然存在,但非常罕见和可接受),导致如此高的 CPU 消耗,实际上这是不可接受的。

ffmpeg -re -stream_loop -1 -i ./short.mp4 -s 426x240 -c:v libx264 -profile:v baseline -b:v 1M -r 24 -g 60 -an -f rtp rtp://127.0.0.1:5004

结果 SDP 是:

o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat 58.20.100
m=video 5004 RTP/AVP 96
b=AS:1000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
Run Code Online (Sandbox Code Playgroud)

流使用 Janus API 设置为

            "janus" : "message",
            "transaction" : 'Transaction',
        "body": { …
Run Code Online (Sandbox Code Playgroud)

video-streaming h.264 webrtc janus-gateway

9
推荐指数
2
解决办法
9961
查看次数

我如何强制 ffmpeg 保持尺寸可被 2 整除,同时保持宽高比?

例如,这个命令行:

ffmpeg -i rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov -vf "scale=w=416:h=234:force_original_aspect_ratio=decrease" -an -f rawvideo -pix_fmt yuv420p -r 15 -
Run Code Online (Sandbox Code Playgroud)

工作正常,除非源视频为 360x240,输出将为 351x234。这有点糟糕,因为由于颜色数据的存储方式,具有奇怪尺寸的 yuv420p 视频很难处理。

有没有一种方法可以强制 ffmpeg 给出最接近的可能偶数值?

ffmpeg

1
推荐指数
1
解决办法
1173
查看次数

标签 统计

ffmpeg ×1

h.264 ×1

janus-gateway ×1

video-streaming ×1

webrtc ×1