gpt4 book ai didi

ffmpeg - 使用 ffmpeg,jpg 到 mp4 到 mpegts,使用 HLS M3U8 播放,只播放第一个 TS 文件 - 为什么?

转载 作者:行者123 更新时间:2023-12-04 23:18:21 34 4
gpt4 key购买 nike

在发布之前,我在 stackoverflow 上搜索并发现了类似的问题(我在下面列出了一些) - 没有人帮助我找到解决方案,因此这篇文章。每个图像在电影文件中显示的持续时间与我迄今为止看到的许多帖子不同。
相机每 30 秒捕获 1 张图像。我需要流式传输它们,最好是通过 HLS,因此我将 2 个图像包装在 MP4 中。然后我将 MP4 转换为 mpegts。每个 MP4 和 TS 文件都可以单独播放(每个包含两个图像,每个图像在 30 秒后转换,每个电影文件时长 1 分钟)。
当我在 M3U8 播放列表中引用两个 TS 文件时,只会播放第一个 TS 文件。谁能告诉它为什么停止以及如何让它播放我希望创建的所有 TS 文件,而不仅仅是第一个 TS 文件?除了我的 ffmpeg 命令,我还包括我的 VLC 日志文件(尽管我希望流式传输到 Firefox/Chrome 客户端)。我正在使用安装在带有 AMI2 Linux 的 AWS EC2 上的 ffmpeg 4.2.2-static。
我有四个名为 image11.jpg 的 jpg , image12.jpg , image21.jpg , image22.jpg - 图像看起来几乎相同,只有左上角的时间戳发生了变化。
以下命令创建 1.mp4,使用 image11.jpg 和 image12.jpg,每张图片显示 30 秒,mp4 的总时长为 1 分钟。它按预期播放。ffmpeg -y -framerate 1/30 -f image2 -i image1%1d.jpg -c:v libx264 -vf "fps=1,format=yuvj420p" 1.mp4然后我将 1.mp4 转换为 mpegts 文件,创建 1.ts。它按预期播放。ffmpeg -y -i 1.mp4 -c:v libx264 -vbsf h264_mp4toannexb -flags -global_header -f mpegts 1.ts我重复上述步骤,除了特定于 image21.jpg 和 image22.jpg,创建 2.mp4 和 2.tsffmpeg -y -framerate 1/30 -f image2 -i image1%1d.jpg -c:v libx264 -vf "fps=1,format=yuvj420p" 2.mp4ffmpeg -y -i 1.mp4 -c:v libx264 -vbsf h264_mp4toannexb -flags -global_header -f mpegts 2.ts因此,现在我有 1.mp4、1.ts、2.mp4、2.ts 并且所有四个单独播放都很好。
使用 ffprobe 我可以确认它们的持续时间是 60 秒,例如:ffprobe -i 1.ts -v quiet -show_entries format=duration -hide_banner -print_format json我的 m3u8 播放列表如下:

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-TARGETDURATION:60.000
#EXTINF:60.0000,
1.ts
#EXTINF:60.000,
2.ts
#EXT-X-ENDLIST
谁能告诉我哪里出错了?
VLC Error Log (虽然我希望通过网络浏览器玩)
我已经使用这些(和其他页面)作为指南研究了该过程:
How to create a video from images with ffmpeg
convert from jpg to mp4 by ffmpeg
ffmpeg examples page
FFMPEG An Intermediate Guide/image sequence
How to use FFmpeg to convert images to video

最佳答案

看看start_pts/start_timeffprobe -show_streams输出,我的猜测是它们都从零/接近零开始,这将导致在您的第一段之后播放失败。
你仍然可以独立生产它们,但你会想要使用像 -output_ts_offset 这样的东西。正确设置后续段的时间戳。

关于ffmpeg - 使用 ffmpeg,jpg 到 mp4 到 mpegts,使用 HLS M3U8 播放,只播放第一个 TS 文件 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71861295/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com