video - FFmpeg:从具有不同片段持续时间的相同输入视频生成的 M3U8 播放列表的 MD5 哈希(应用视频过滤器后)不匹配

标签 video ffmpeg md5 http-live-streaming

这是我用来将 MP4 格式的视频转换和转换为 M3U8 的一些命令。播放列表。
对于给定的输入视频(MP4 格式),生成多个片段持续时间为 30 秒的视频片段。

ffmpeg -loglevel error -i input.mp4 -dn -sn -an -c:v copy -bsf:v h264_mp4toannexb -copyts -start_at_zero -f segment -segment_time 30 30%03d.mp4 -dn -sn -vn -c:a copy audio.aac
在每个片段上应用视频过滤器(在本例中为缩放)并将其转换为 M3U8 格式。
ls 30*.mp4 | parallel 'ffmpeg -loglevel error -i {} -vf scale=-2:144 -hls_list_size 0 {}.m3u8'
存储list.txt中生成的m3u8文件列表以这种格式 file 'segment-name.m3u8'
for f in 30*.m3u8; do echo "file '$f'" >> list.txt; done
使用 concat demuxer,将所有片段文件(M3U8 格式)和音频结合起来,得到一个指向持续时间为 10 秒的片段的最终 m3u8 播放列表。
ffmpeg -loglevel error -f concat -i list.txt -i audio.aac -c copy -hls_list_size 0 -hls_time 10 output_30.m3u8

我可以将第一步中的分段持续时间从 30 秒更改为 60 秒,并使用以下命令比较两种情况下生成的最终 M3U8 播放列表的 MD5 哈希:
ffmpeg -loglevel error -i <input m3u8 playlist> -f md5 -
输出文件的 MD5 哈希值不同,即 output_30.m3u8 的视频流和 output_60.m3u8不一样。
谁能详细说明这一点?
(我希望 MD5 哈希值相同)

最佳答案

M3U8 文件只是一个文本文件。对它们运行 diff,它会告诉你到底有什么不同。

关于video - FFmpeg:从具有不同片段持续时间的相同输入视频生成的 M3U8 播放列表的 MD5 哈希(应用视频过滤器后)不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62474057/

相关文章:

ffmpeg - 如何使用 FFMPEG、Celery 和 RabbitMQ 在 django 中转码 MP3 文件?

video - 有没有办法提高在 ffmpeg 中将字幕刻录到视频的速度

c# - 使用 .NET 进行安全密码编程

linux - 从多个视频中提取元数据

ruby - 在写入时将 .mov 流式传输到浏览器

c# - 初学者散列和加盐

perl - 流中文件的 MD5。珀尔

iphone - iOS SDK 彩信视频流

java - Android FFMPEG java 连接多个文件

opencv - 视频文件和 OpenCV