我有一个脚本,通过udp在无限循环中发送mp4视频,模拟直播流。我想通过HLSlive进行广播.
我使用以下命令:
ffmpeg -i udp://
: -c:v libx264 -b:v 3000k -c:a aac -b:a 128k -f hls -hls_time 10 -hls_listrongize 0 -hls_segment_filename /output%03d。ts & lt; OUTPUT_M3U8_FILE>
但是它不起作用。Ffmpeg大部分时间不产生输出,除了当我尝试发送一个非常小的视频时,在这种情况下,它似乎可以工作,但只有在它完成接收整个视频之后。
任何帮助都会很感激。其他方法也可以达到同样的效果
你不能那样管MP4。
mp4只有一个报头,而mp4 demuxer在使用多个报头时会失败,这将在循环mp4时发生。
在ffmpeg内部执行此操作的方法是使用stream_loop。
ffmpeg -stream_loop -1 -i /path/to/mp4 ...
如果你必须管道,转换为流媒体格式,如MPEG-TS。
ffmpeg -i /path/to/mp4 -c copy out.ts
(当然,不是所有的编解码器都可以存储在MPEG-TS中。)