使用 FFmpeg 创建 MPEG-DASH 文件
Use FFmpeg to create MPEG-DASH files
我知道使用 ffmpeg
,我们可以创建 MPEG-DASH 就绪文件,包括片段和 .mpd 清单文件。例如,我正在尝试这个有效的命令:
ffmpeg -re -i .\video-h264.mkv -map 0 -map 0 -c:a aac -c:v libx264 -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -f dash out.mpd
但我不想对视频进行分段 - 所以我们有一个更简单的版本,我们有整个视频的多个版本,没有块。 MPEG-DASH 允许吗?如果是这样,我如何在不创建块的情况下使用 ffmpeg
来完成它?
我认为你的意思是你想要一个文件(对于每个比特率),而不是每个片段的单个文件(同样,对于给定的比特率)。
MPEG DASH 支持这一点 - 在清单中,每个段都由基数 URL 和字节范围引用,而不是单独的 URL.
FFmpeg 支持使用单个文件选项生成此格式:
single_file single_file
Enable (1) or disable (0) storing all segments in one file, accessed using byte ranges.
我知道使用 ffmpeg
,我们可以创建 MPEG-DASH 就绪文件,包括片段和 .mpd 清单文件。例如,我正在尝试这个有效的命令:
ffmpeg -re -i .\video-h264.mkv -map 0 -map 0 -c:a aac -c:v libx264 -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -f dash out.mpd
但我不想对视频进行分段 - 所以我们有一个更简单的版本,我们有整个视频的多个版本,没有块。 MPEG-DASH 允许吗?如果是这样,我如何在不创建块的情况下使用 ffmpeg
来完成它?
我认为你的意思是你想要一个文件(对于每个比特率),而不是每个片段的单个文件(同样,对于给定的比特率)。
MPEG DASH 支持这一点 - 在清单中,每个段都由基数 URL 和字节范围引用,而不是单独的 URL.
FFmpeg 支持使用单个文件选项生成此格式:
single_file single_file
Enable (1) or disable (0) storing all segments in one file, accessed using byte ranges.