Tente:
ffmpeg -i in.mp4 -acodec copy -vcodec copy out.ts
O Ffmpeg também possui um segmentador. Consulte o link
Tenho vídeos h264 e atualmente estamos usando as ferramentas HTTP Video Streaming da Apple e mediafilesegmenter para segmentar esses arquivos. O que eu preciso fazer é mudar para o segmentador alternativo baseado em este segmentador open-source muito popular
O problema é que esse segmentador não aceita apenas vídeos, mas apenas vídeos MPEG-TS. Então eu tenho que converter meus vídeos h264 para TS primeiro.
Eu posso fazer isso com o ffmpeg. Eu estou usando isso:
ffmpeg -i encoded.mp4 -vcodec h264 -i encoded.mp4 -sameq -acodec aac -strict experimental -f mpegts output.ts
Mas isso cria uma produção razoavelmente maior. E a razão é que o segmentador da Apple mantém o mesmo codec - AVC e o mesmo codec de áudio - AAC, enquanto o ffmpeg altera o formato de vídeo para MPEG Video.
A pergunta é: posso de alguma forma manter o mesmo codec de vídeo AVC e ainda converter vídeo em um fluxo de transporte?
Portanto, meu objetivo é manter a mesma qualidade de vídeo e os mesmos codecs de vídeo que o segmentador de mídias da Apple faz.
UPD: Ok ... parece que o ffmpeg PODE dividir vídeos em segmentos:
ffmpeg -i encoded.mp4 -c copy -map 0 -vbsf h264_mp4toannexb -f segment -segment_time 10 -segment_list test.m3u8 -segment_format mpegts segment%d.ts
Isso ainda tem um problema: ele não cria um arquivo de índice de transmissão ao vivo http. (-segment_list cria um arquivo com lista de segmentos, mas não se parece com o índice HLS). Então, você ainda tem que criar um arquivo de índice
Tente:
ffmpeg -i in.mp4 -acodec copy -vcodec copy out.ts
O Ffmpeg também possui um segmentador. Consulte o link
Tente definir -segment_list_type
como m3u8
. Do jeito que está, a lista é boa para conversão de arquivos estáticos, mas não para transmissões ao vivo, já que a duração do segmento não é adicionada à lista até que close_list
seja chamado.
O tipo de lista deve ser definido a partir da extensão de arquivo de nome de lista nas versões atuais, mas não é.
Tente definir -segment_list_flags live
Tags ffmpeg video-conversion aac h.264