video - 具有多个 mp4 文件的 ffmpeg 分段到 HLS 流

标签 video ffmpeg mp4 http-live-streaming

我正在尝试从 .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/

相关文章:

iphone - 一个 AVPlayerItem 不能与多个 AVPlayer 实例相关联'

java - 在 Java 桌面应用程序中播放视频

video - 如何在给定时间使用 ffmpeg 为视频提取 1 个屏幕截图?

iphone - 如何在 iPhone 3G 上从 UIImagePickerController 选择视频?

nginx - 如何使用 FFmpeg 和 NGINX RTMP 进行流式传输

javascript - 从浏览器录制视频并流式传输到 Youtube/Twitch 时,如何使用 ffmpeg 添加音频?

ffmpeg - 如何从透明图像创建透明视频?

ffmpeg - 使用 FFMPEG 转换 AVI 文件时出错

php - 使用php将mp4文件上传到数据库

c++ - ffmpeg:如何将 h264 原始数据保存为 mp4 文件