Estou usando ffmpeg
para gerar um fluxo mp4 fragmentado que será consumido por um player HTML5. Acho que tenho um fluxo de dados mp4 formatado corretamente com um moov
no início e uma série de moof+mdat
para os fragmentos de vídeo. O que eu estou preso é com o codec que está sendo recebido pelo Chrome.
chrome: // media-internals tem isto a dizer:
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
A partir do qual eu entendi, o problema é com os dados codificados, que devem estar em avc1.4d0020
, conforme especificado no javascript.
Já vi a resposta para link , que me diz que preciso redefinir profile_compatibility
, mas não consegui encontrar uma opção para fazer isso.
Aqui está a linha de comando que estou usando (o pipe é lido e enviado para a página da web usando sockets da 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
Então a questão é, posso definir o profile_compatiblity
na linha de comando do ffmpeg?