gpt4 book ai didi

单个图像+音频上的ffmpeg关键帧控制

转载 作者:行者123 更新时间:2023-12-04 23:33:22 25 4
gpt4 key购买 nike

我已经搜索了我能找到的每一个相关的 StackOverflow 问题,但没有一个能解决这个问题,如果我错过了一个可行的问题,请提前道歉。
我正在处理的应用程序将视频或音频文件转换为 mp4,然后在服务器上转换为 hls 播放列表。我刚刚实现了音频,我想要一个背景图像。在阅读了 StackOverflow 上的各种选项后,我确定了以下参数:

-y -i "C:\path\ExternalAudioBackground.png" -i "C:\path\Audio.mp3" -vf scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1:color=black -c:a copy -vcodec libx264 -pix_fmt yuv420p "C:\path\external_media_file.mp4"
选择这组 args 是因为它是瞬时的,因为 -c:a copy以及确保所有视频具有相同纵横比和编码的约束。
问题是当将其转换为 hls 流时,流无法播放(在 video.js 播放器和 vlc 中)并显示以下消息:
VIDEOJS:警告:当报告的持续时间为 0.04 且目标持续时间为 0.04 时,播放列表 0-https://domain/video.m3u8 中索引为 0 的片段的持续时间为 464.96。对于 HLS 内容,超过目标持续时间的持续时间可能会导致播放问题。有关详细信息,请参阅 EXT-X-TARGETDURATION 上的 HLS 规范部分: https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.3.1 https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.3.1
添加 -loop 1 to start 将处理时间从毫秒增加到分钟,但会产生一个工作文件
添加 -r 1 and -loop 1处理时间比没有 -r 时要长(!?)
添加 -stream_loop 116 (116 是以秒为单位的音频长度除以 4,所需的 hls 段大小)在图像输入循环播放音频的前 4 秒之前
添加 -g 96 (96 是 fps * 4)
如果相关,hls 编码参数如下所示:
-safe 0 -f concat -i listOfFiles.txt -c:a aac -ar 48000 -b:a 128k -vcodec copy -crf 20 -g 48 -keyint_min 48 -sc_threshold 0 -b:v 2500k -maxrate 2675k -bufsize 3750k -hls_time 4 -hls_playlist_type vod  -hls_segment_filename segment-%03d.ts result.m3u8
在所讨论的案例中,listOfFiles.txt 始终只包含一个文件。
我怎样才能以最短的处理时间实现这一目标,但仍然可以将文件转换为 HLS?

最佳答案

感谢@Gyan 在评论中解决了这个问题:
在图像输入之前添加-loop 1 -framerate 0.5,在libx264之后添加-intra
添加 -shortest -fflags +shortest -max_interleave_delta 100M

关于单个图像+音频上的ffmpeg关键帧控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68627606/

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