ffmpeg编码与rtmp的问题

  1. 我用ffmpeg -i 去看视频信息的时候,会显示如下信息
Stream #0:0: Video: h264 (High), yuv420p, 600x352, 281 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 532 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
请问这个avc1编码器是什么意思?在rtmp推送的时候,如果前后两个视频编码不一样会不会导致 花屏、灰屏、无声音、无图像情况?

或者都是h264编码,但是不同的编码器都有可能导致花屏、灰屏、无声音、无图像?

  1. 如何平滑的切换rtmp视频?
    我现在用的是nginx-rtmp-module,开启live模式,使用ffmpeg -re 来publish视频,切换视频是杀死ffmpeg进程,并立即开另外一个。现在如果使用不同来源的视频,可能会导致问题1中说的花屏、灰屏、无声音、无图像。请问有好的方法解决?

  2. 在使用rtmp做直播的时候,是否有好的经验可以借鉴下?比如工具,编码器,切换视频等

阅读 8.7k
1 个回答

H264是一个标准,这个标准下有多种不同的codec,avc1是其中一种;简单的理解,h264和avc1基本就是一个东西。
live模式是实时流,你既然已经有了录制好的视频(不是实时流),它可能对你没什么意义。
nginx的nginx_rtmp_module本身就是支持adaptive bitrate streaming的(就是不同码率的自动切换),但什么时候切换是由支持多level的前端播放器决定的,比如jwplayer.com

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进