【问题标题】:ffmpeg h264 interesting bright video fail?ffmpeg h264 有趣的明亮视频失败?
【发布时间】:2019-12-05 20:11:13
【问题描述】:

我正在尝试使用我找到的信息here 使用 ffmpeg 进行流式传输。

  • 服务器

    ffmpeg -f dshow -i video="john":audio="doe" -vcodec libx264
    -preset ultrafast -tune zerolatency -acodec aac -f mpegts udp://localhost:1234
    
  • 客户

    ffmpeg -i udp://localhost:1234?listen test.mp4
    

客户端实际上会直播视频,但出于测试目的,我现在将输出写入文件。

有趣的部分来了。我在一个黑暗的房间里开始播放流(视频和音频),一切都很好。 我打开房间的灯,客户哭了很多错误。我后来检查了输出,在灯打开的部分确实非常损坏。这背后的原因可能是什么?如果可以提供帮助,我会在此处发布错误。

一些错误:

udp://localhost:1234?listen: corrupt decoded frame in stream 0trate= 845.6kbits/s dup=1250 drop=0 speed=1.08x
    Last message repeated 1 times
[h264 @ 0000026c4af69400] Invalid NAL unit 1, skipping.7.61 bitrate= 864.7kbits/s dup=1441 drop=0 speed=1.07x
[h264 @ 0000026c4af69400] Invalid level prefix
[h264 @ 0000026c4af69400] error while decoding MB 18 8
[h264 @ 0000026c4af69400] concealing 911 DC, 911 AC, 911 MV errors in P frame
[h264 @ 0000026c4af4b780] Invalid NAL unit 1, skipping.
[h264 @ 0000026c4af4b780] negative number of zero coeffs at 10 14
[h264 @ 0000026c4af4b780] error while decoding MB 10 14
[h264 @ 0000026c4af4b780] concealing 679 DC, 679 AC, 679 MV errors in P frame
udp://localhost:1234?listen: corrupt decoded frame in stream 0
    Last message repeated 1 times
[h264 @ 0000026c4ba1e1c0] Invalid NAL unit 1, skipping.8.21 bitrate= 858.0kbits/s dup=1460 drop=0 speed=1.07x
[h264 @ 0000026c4ba1e1c0] out of range intra chroma pred mode
[h264 @ 0000026c4ba1e1c0] error while decoding MB 34 18
[h264 @ 0000026c4ba1e1c0] concealing 495 DC, 495 AC, 495 MV errors in P frame
[h264 @ 0000026c4bb16840] top block unavailable for requested intra mode
[h264 @ 0000026c4bb16840] error while decoding MB 10 0
[h264 @ 0000026c4bb16840] concealing 160 DC, 160 AC, 160 MV errors in P frame
udp://localhost:1234?listen: corrupt decoded frame in stream 0
[h264 @ 0000026c4bb16cc0] Invalid NAL unit 0, skipping.8.58 bitrate= 853.9kbits/s dup=1463 drop=0 speed=1.06x
[h264 @ 0000026c4bb16cc0] corrupted macroblock 16 28 (total_coeff=-1)
[h264 @ 0000026c4bb16cc0] error while decoding MB 16 28
[h264 @ 0000026c4bb16cc0] concealing 113 DC, 113 AC, 113 MV errors in P frame
[h264 @ 0000026c4bb17140] cbp too large (84) at 12 0
[h264 @ 0000026c4bb17140] error while decoding MB 12 0
[h264 @ 0000026c4bb17140] concealing 160 DC, 160 AC, 160 MV errors in P frame
[mpegts @ 0000026c4aeb8d80] PES packet size mismatch

编辑:作为建议,我将这些参数添加到服务器。

-b:v 1M -bufsize 2M

现在错误大多消失了。除了有一次它似乎发生在我关灯的时候,虽然我尝试了 4-5 次后无法重现。

错误:

[h264 @ 000002646f0d2f80] cbp too large (118) at 23 1422.25 bitrate= 659.5kbits/s dup=368 drop=0 speed=1.33x
[h264 @ 000002646f0d2f80] error while decoding MB 23 14
[mpegts @ 000002646e578d80] PES packet size mismatch
[h264 @ 000002646f0d2f80] concealing 666 DC, 666 AC, 666 MV errors in P frame
[h264 @ 000002646f0d0f80] concealing 160 DC, 160 AC, 160 MV errors in P frame
[aac @ 000002646e64d640] Number of bands (59) exceeds limit (43).
Error while decoding stream #0:1: Invalid data found when processing input
[aac @ 000002646e64d640] Multiple frames in a packet.
[aac @ 000002646e64d640] Reserved bit set.
[aac @ 000002646e64d640] Number of bands (31) exceeds limit (29).
Error while decoding stream #0:1: Invalid data found when processing input
[h264 @ 000002646e5e11c0] concealing 160 DC, 160 AC, 160 MV errors in P frame
udp://localhost:1234?listen: corrupt decoded frame in stream 0trate= 633.1kbits/s dup=368 drop=0 speed=1.35x
    Last message repeated 2 times

错误减少是因为我提高了比特率? (顺便说一下,我不知道默认比特率)。明亮解码失败,因为它携带更多信息,数据? (在原始视频中相同,但文件可能是较重的编码亮帧)

【问题讨论】:

  • 如果从开灯开始,你有这个问题吗?还是只有在从黑暗过渡到光明时?而且,出于同样的原因,如果您快速将相机对准一个全新的场景,您会遇到问题吗?
  • @Brad 问题在灯亮时存在,并且在关闭时消失。
  • 啊,好吧,那么使用 i-frame 就不是问题了。抱歉,帮不上忙……这超出了我所知道的范围。
  • 强制固定比特率怎么样?问题是否可以在某个比特率以上重现?可能是打包的问题,​​并且在灯亮的情况下,对场景进行编码需要更多位?
  • @Brad 请检查编辑。

标签: ffmpeg udp video-streaming h.264 mpeg2-ts


【解决方案1】:

在您的客户端(我看到您为此使用 FFmpeg),添加:

-flags2 showall

所以您的 CLI 将如下所示:

ffmpeg -flags2 showall -i udp://localhost:1234?listen test.mp4

这允许在第一个关键帧之前的帧被渲染而不是被丢弃。

某些无人机相机 (DJI) 拍摄的镜头存在相同问题,只能通过该标志进行纠正。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 2012-08-03
    • 2015-02-23
    • 2016-10-04
    • 2016-01-11
    • 2016-01-21
    • 2011-02-18
    • 1970-01-01
    • 2020-08-08
    相关资源
    最近更新 更多