FFmpeg:段多路复用器不适用于AVC-MXF

问题描述

我正在尝试使用以下命令每60秒将输入流保存到单独的文件

ffmpeg -i Input -vcodec libx264 -s 1920x1080 -pix_fmt yuv422p10le -aspect 16:9 
 -acodec pcm_s24le -ac 2 -ar 48000 -f segment -strftime 1 -segment_time 60
-y "e://o1/%H-%M-%s.mxf"

但出现此错误

[mxf @ 000002111453c640] h264 profile not supported0:00.62 bitrate=N/A speed=1.23x
[mxf @ 000002111453c640] Could not get h264 profile
av_interleaved_write_frame(): Operation not permitted

注意:以下3条命令可以正常运行

1- ffmpeg -i Input -vcodec libx264 -s 1920x1080 -pix_fmt yuv422p10le -aspect 16:9 
 -acodec pcm_s24le -ac 2 -ar 48000 -f segment -strftime 1 -segment_time 60
-y "e://o1/%H-%M-%s.ts"

2- ffmpeg -i Input -vcodec libx264 -s 1920x1080 -pix_fmt yuv422p10le -aspect 16:9 
 -acodec pcm_s24le -ac 2 -ar 48000 -f mxf -f segment -strftime 1 -segment_time 60
-y "e://o1/%H-%M-%s.mkv"

3- ffmpeg -i Input -vcodec libx264 -s 1920x1080 -pix_fmt yuv422p10le -aspect 16:9 
 -acodec pcm_s24le -ac 2 -ar 48000 out.mxf"

(我认为编码器的私有选项未用于分段,但我不知道如何找到它。)

问:如何每60秒将输入的实时流保存到单独的mxf文件中? (使用AVC编解码器+ MXF格式)

解决方法

MXF多路复用器依赖于从每个H.264 KF数据包中提取额外的数据,当通过网段用户调用该数据包时,该数据似乎丢失了。

在原始命令中添加以下内容以附加元数据

-bsf:v extract_extradata,dump_extra=k