我正在尝试从 .txt 分割多个 mp4 文件(就像串联一样),但它似乎对我不起作用。
这是我的concat.txt
:
file video1.mp4
file video2.mp4
file video3.mp4
ETC...
我的 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
不幸的是,每个媒体播放器都会在播放时抛出错误。
我可以使用 concat 文件,还是必须先将所有 mp4 连接到一个 mp4 文件中,然后将该 mp4 文件分段以获得最终的 m3u8?
最佳答案
ffmpeg concat demuxer
尽管容器可能会有所不同,但输入文件需要相同的编解码器。您还需要确保视频和音频流在所有文件中具有相同的 ID。ffmpeg -re -f concat -i concat.txt -c:v libx264 -vbsf h264_mp4toannexb -r 25 -g 75 -c:a libfdk_aac -hls_time 3 playlist.m3u8
我用了h264_mp4toannexb
比特流过滤器将 H.264 流转换为 附件 B MPEG-TS 要求的格式,将 GOP 大小设置为 75(25 fps 时为 3 秒)并使用 3 秒的片段长度,因为每个片段都应以关键帧开始。
关于video - 具有多个 mp4 文件的 ffmpeg 分段到 HLS 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180665/