Video 多个mp4文件到HLS流的ffmpeg分段

Video 多个mp4文件到HLS流的ffmpeg分段,video,ffmpeg,mp4,http-live-streaming,Video,Ffmpeg,Mp4,Http Live Streaming,我试图从一个.txt文件中分割多个mp4文件(就像串联一样),但它似乎对我不起作用 这是我的concat.txt: file video1.mp4 file video2.mp4 file video3.mp4 等等 我的ffmpeg命令是: ffmpeg -i concat.txt -map 0 -codec:v libx264 -codec:a libfaac -f ssegment \ -segment_list playlist.m3u8 -segment_list_flags +li

我试图从一个.txt文件中分割多个mp4文件(就像串联一样),但它似乎对我不起作用

这是我的
concat.txt

file video1.mp4
file video2.mp4
file video3.mp4
等等

我的ffmpeg命令是:

ffmpeg -i concat.txt -map 0 -codec:v libx264 -codec:a libfaac -f ssegment \
-segment_list playlist.m3u8 -segment_list_flags +live -segment_time 10 out%03d.ts
不幸的是,每个mediaplayer在播放时都会抛出一个错误


我可以使用concat文件,还是必须先将所有mp4压缩到一个mp4文件中,然后分割该mp4文件以获得最终的m3u8?

ffmpeg
concat解复用器
要求输入文件使用相同的编解码器,尽管容器可能有所不同。您还需要确保视频和音频流在所有文件中具有相同的ID

ffmpeg-re-f concat-i concat.txt-c:v libx264-vbsf h264_mp4toanexb-r 25-g 75-c:a libfdk_aac-hls_time 3播放列表。m3u8


我使用
h264\u mp4toannexb
位流过滤器将H.264流转换为MPEG-TS所需的附件B格式,将GOP大小设置为75(每秒25帧时为3秒),并使用了3秒的段长,因为每个段都应该以一个关键帧开始。

试试看,我猜……谢谢-f concat做到了:)@aergistal您能否解释一下,如果可能的话,可以通过命令将输入文件转换为MPEG-TS,然后再转换为.m3u8?我现在使用的是ffmpeg文档中提到的一个简单命令,即ffmpeg-re-I in.mkv-codec copy-map 0-f segment-segment\u list playlist.m3u8 \-segment\u list\u flags+live-segment\u time 10 out%03d.mkv该注释措词不当,具有误导性,因此我将其删除。我的意思是,如果您有不同编解码器的文件,您需要将它们转换为使用相同的编解码器,以便concat解复用器工作。我用一个示例命令添加了一个正确的答案。你试过concat过滤器吗
ffmpeg-i“concat:file1.mp4 | file2.mp4 | fileN.mp4”[…]