Como gravar parte de um áudio transmitido por HLS e enviá-lo ao YouTube como um podcast de áudio
Essas informações "como fazer" são um guia de como consegui atender cinco requisitos relacionados a essa tarefa, que inicialmente pareciam difíceis de alcançar. Eles estão listados abaixo:
O podcast que eu queria criar é de um segmento de meia hora no meio de um programa de rádio de 2,5 horas, que, por apenas um período limitado (1 semana) após a data da transmissão, pode ser transmitido no site da estação de rádio. É um fluxo HLS. Meus requisitos específicos para esta tarefa foram:
1) Eu precisava fazer isso com um conjunto mínimo de ferramentas de software, de preferência gratuito e ainda melhor se fosse de código aberto. Os que eu usei estão listados abaixo.
2) Eu queria converter o arquivo de áudio de m4a para mp3.
3) Eu queria editar o áudio para apará-lo nas duas extremidades e, possivelmente, também remover alguns bits no meio.
4) É possível criar um arquivo de vídeo (por exemplo, mp4) apenas com uma trilha de áudio e sem trilha de vídeo, mas o YouTube não aceita esse arquivo. No mínimo, o YouTube requer pelo menos uma imagem fixa para acompanhar a faixa de áudio.
5) Salvar o fluxo de áudio em um arquivo é bastante fácil, mas o arquivo precisaria passar por um processamento subsequente nas etapas 2 a 4, e apenas o carregamento de um arquivo de áudio de 2,5 horas em um editor pode consumir bastante tempo, de maneira ideal, seria preferível fazer o download do segmento de meia hora no meio que eu queria. Esse segmento começa no horário ~ 1: 34: 00.
O software que usei está listado abaixo. (Existem quatro itens.) Nota: Embora alguns desses softwares sejam multiplataforma, eu fiz isso tudo no Windows 7 e no navegador 53.0.2 do Firefox.) Não posso garantir resultados em outras plataformas e algumas das instruções abaixo pode precisar de pequenas modificações para outros navegadores.
Verifique a pasta na qual o FFmpeg está instalado. Se ele não contiver um arquivo chamado ff-prompt.bat, crie um (é um arquivo de texto) seguindo as instruções fornecidas pelo Maxime aqui:
https://disqus.com/home/discussion/mrfdev/ffmpeg_command_generator/newest/#comment-3264465301
Neste tutorial, usarei o exemplo do site e do fluxo de áudio em que trabalhei. YMMV se você estiver tentando isso com uma fonte de áudio diferente.
O programa de rádio é: ABC Radio Melbourne: "Manhãs com Jon Faine" Há uma lista de episódios anteriores desse programa aqui:
http://www.abc.net.au/radio/melbourne/programs/mornings/episodes/%20(http://www.abc.net.au/radio/melbourne/programs/mornings/episodes/)
Aqueles com mais de uma semana de idade são irrecuperáveis. (O streaming pode estar bloqueado geograficamente em alguns países.)
PROCEDIMENTO:
(Isso está dividido em três partes: Download, Edição e Criação de um vídeo)
(1) Faça o download do áudio:
Na página dos episódios anteriores, localize o programa relevante e clique no link para acessar a página do programa, onde você verá um jogador, com um ícone de reprodução chamado "Ouvir".
O que você precisa agora é da lista de reprodução de streaming para este conteúdo de áudio. Existem dois métodos para obter isso: A maneira mais fácil (método a abaixo) é usar a extensão do navegador VDH. Se você não o possui, use o método b abaixo.
Método (a) (use isso se você tiver a extensão do navegador VDH mencionada acima):
- Clique no ícone de reprodução para iniciar o fluxo,
Aguarde o áudio começar a tocar. Quando isso acontecer,
Clique no ícone VDH para abrir seu menu.
No painel VDH, passe o cursor do mouse sobre o item de interesse. Uma seta para a direita aparecerá à sua direita.
Clique na seta à direita desse item e escolha "Copiar URL"
(Isso copia o URL da mídia para a área de transferência.)
Agora você pode fechar a página da web que contém o player.
O URL será semelhante a este:
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/index_0_a.m3u8?null=0
- Abra uma nova guia do navegador e cole o URL da mídia na barra de endereços do navegador da Web e vá para esse endereço.
Continue em (c) abaixo.
Método (b)
(Use este método se você não tiver a extensão do navegador VDH.)
Abra o HTML de origem da página da Web que contém o player.
(Para fazer isso no Firefox, clique com o botão direito do mouse em uma área em branco da página e escolha "Exibir fonte da página".)
O código-fonte HTML dessa página da web deve abrir em uma nova guia do navegador.
Use a função de localização do navegador da web para encontrar uma linha semelhante a esta:
"url": " http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/master.m3u8 ",
Selecione a parte dessa linha entre o segundo conjunto de aspas duplas.
Clique com o botão direito do mouse na seleção e escolha "Abrir link".
Uma caixa de diálogo abrir / salvar arquivo será aberta para um arquivo chamado master.m3u8.
Faça o download do arquivo.
Abra o arquivo master.m3u8 em um editor de texto.
Ele conterá três linhas semelhantes a esta:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=130000,CODECS="mp4a.40.2",CLOSED-CAPTIONS=NONE
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/index_0_a.m3u8?null=0
A terceira linha é uma URL.
- Copie-o e cole-o na barra de endereços do navegador da Web e vá para esse endereço.
(c) Continue aqui de (a) ou (b) acima:
Uma caixa de diálogo "Abrir / Salvar arquivo" é aberta para um arquivo chamado index_0_a.m3u8.
Esse tipo de arquivo é um arquivo de texto sem formatação que contém uma lista de reprodução de áudio que informa aos players onde os arquivos de mídia estão localizados.
- Abra o arquivo em um editor de texto.
Seu conteúdo será semelhante a este:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.000,
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/segment1_0_a.ts?null=0
#EXTINF:10.000,
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/segment2_0_a.ts?null=0
... <snip> ... (for a 2.5-hour stream, there will be about 900 pairs of lines here)
#EXTINF:8.997 http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/segment900_0_a.ts?null=0
#EXT-X-ENDLIST
O arquivo acima contém URLs para 900, segmentos de áudio de 10 segundos, numerados de 1 a 900. Para cada segmento, há um par de linhas:
A primeira linha de cada par consiste no texto: "#EXTINF: 10.000".
A segunda linha em cada par contém o URL para o segmento de áudio.
Agora, no editor de texto, você removerá os segmentos listados abaixo, excluindo o par de linhas de cada segmento a ser excluído.
- Remova os segmentos 1 a 563 (ou seja, os primeiros ~ 94 minutos)
- Remova os segmentos 834 a 900. (nos últimos 11 minutos)
(Cuidado para deixar intacta a última linha de leitura: # EXT-X-ENDLIST)
Isso deixa 270 segmentos no meio (os 45 minutos a partir das ~ 1: 34: 00).
- Salve o arquivo editado como, digamos, A.m3u8
(d) Agora você usará o VLC para transmitir o trecho de áudio desejado e salvá-lo como um arquivo MP3.
Abra o VLC media player e no menu VLC:
- clique em "Mídia" e depois em "Converter / Salvar ..."
Na caixa de diálogo "Mídia aberta", na guia Arquivo,
Na caixa de diálogo Selecionar arquivos,
- encontre e selecione o arquivo A.m3u8 ,
De volta à caixa de diálogo "Mídia aberta",
- clique em "Converter / Salvar"
Na caixa de diálogo "Converter",
em "Perfil", escolha "Áudio - MP3",
em "Arquivo de destino", clique em "Procurar"
Na caixa de diálogo "Salvar arquivo ...",
De volta à caixa de diálogo "Converter",
O VLC transmitirá (silenciosamente) a mídia e a salvará como um arquivo MP3.
(Enquanto isso, a barra deslizante do tempo atua como uma barra de progresso.)
(2) EDITAR O ÁUDIO:
Se necessário, edite o MP3 no seu editor de áudio favorito para apará-lo no início e no final e / ou para remover bits indesejados do meio, depois exporte a versão editada como um novo MP3. Eu usei o Audacity para fazer isso. Uma explicação de como fazer isso no Audacity está além do escopo deste artigo. A boa notícia é que, se a edição da lista de reprodução na parte 1 resultou em uma extração suficientemente precisa da parte do fluxo de áudio que você deseja salvar, essa etapa pode ser desnecessária.
(3) Combine uma imagem e o áudio em um vídeo:
Este método usa FFmpeg. Vem de Ed Mann. É explicado mais detalhadamente aqui:
http://eddmann.com/posts/uploading-podcast-audio-to-youtube/
Este exemplo supõe que o FFmpeg esteja instalado em C: \ Apps \ FFmpeg.
Copie o arquivo de áudio e um arquivo jpg para a imagem que você deseja exibir na trilha de vídeo na pasta C: \ Apps \ FFmpeg \ bin. Nomeie-os como input.mp3 e image.jpg
Abra um prompt de comando e insira os três comandos listados abaixo:
A linha 1 torna a pasta que contém o FFmpeg o diretório atual.
A linha 2 executa o arquivo de comando FF-prompt.bat.
A linha 3 passa um comando personalizado para o FFmpeg que faz com que os dois arquivos sejam combinados em um arquivo de vídeo chamado Output.mkv. Se você preferir que o arquivo de saída seja MP4, basta alterar as três últimas letras na linha 3.
CD "C:\Apps\FFmpeg"
FF-prompt.bat
ffmpeg -loop 1 -r 2 -i image.jpg -i input.mp3 -vf scale=-1:380 -c:v libx264 -preset slow -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p -threads 0 output.mkv
Aguarde o comando concluir. Quando isso acontecer, seu arquivo de vídeo estará pronto para o upload no YouTube. Você o encontrará na subpasta "bin" onde o FFmpeg está instalado. (Neste exemplo, ele estará em: C: \ Apps \ FFmpeg \ bin.)
Aqui está um exemplo de resultado:
https://www.youtube.com/watch?v=k01yREFsYTs