我用它ffmpeg
来生成一个碎片化的 mp4 流,供 HTML5 播放器使用。我认为我有一个格式正确的 mp4 数据流,moov
开头为空,moof+mdat
视频片段为一系列。我遇到的问题在于 Chrome 接收的编解码器。
chrome://media-internals 有这样的说法:
00:00:00 00 pipeline_state kCreated
00:00:00 00 EVENT PIPELINE_CREATED
00:00:00 00 EVENT WEBMEDIAPLAYER_CREATED
00:00:00 00 url blob:http%3A//localhost/3388b7f1-5567-4d76-a585-0b247affd16a
00:00:00 00 pipeline_state kInitDemuxer
00:00:07 68 error Video codec: avc1.4d4020
据我所知,问题出在编码数据上,而编码数据应该avc1.4d0020
按照 javascript 中指定的方式进行。
我已经看到了答案https://stackoverflow.com/questions/16363167/html5-video-tag-codecs-attribute,它告诉我需要重置profile_compatibility
,但我找不到执行该操作的选项。
这是我正在使用的命令行(读取管道并使用 Web 套接字将其发送到网页):
ffmpeg -re -i Input.mp4 -map 0:0 -y -c:v libx264 -preset veryslow -x264opts intra-refresh=1 -tune psnr -refs 1 -b:v 1500k -bf 0 -g 8 -b-pyramid none -f mp4 -movflags empty_moov+omit_tfhd_offset+frag_keyframe -frag_duration 1000000 -profile:v main -level 3.2 -iods_video_profile 0 -flags +loop \\.\pipe\FeedPipe
那么问题是,我可以profile_compatiblity
在ffmpeg命令行中设置吗?