Este é o comando ffserver que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
ffserver - servidor de vídeo ffserver
SINOPSE
ffserver [opções]
DESCRIÇÃO
ffserver é um servidor de streaming para áudio e vídeo. Ele suporta vários feeds ao vivo,
streaming de arquivos e time shifting em feeds ao vivo. Você pode buscar posições no
passado em cada feed ativo, desde que você especifique um armazenamento de feed grande o suficiente.
ffserver é configurado por meio de um arquivo de configuração, que é lido na inicialização. Se não
especificado explicitamente, ele lerá de /etc/ffserver.conf.
ffserver recebe arquivos pré-gravados ou fluxos FFM de alguns ffmpeg instância como entrada,
em seguida, os transmite por RTP / RTSP / HTTP.
An ffserver a instância escutará em alguma porta conforme especificado no arquivo de configuração. Vocês
pode iniciar uma ou mais instâncias de ffmpeg e enviar um ou mais fluxos FFM para a porta
onde ffserver espera recebê-los. Alternativamente, você pode fazer ffserver lançamento
tal ffmpeg instâncias na inicialização.
Os fluxos de entrada são chamados de feeds e cada um é especificado por um " "seção no
arquivo de configuração.
Para cada feed, você pode ter diferentes fluxos de saída em vários formatos, cada um especificado
por um " "seção no arquivo de configuração.
DETALHADO DESCRIÇÃO
ffserver funciona encaminhando streams codificados por ffmpeg, ou fluxos pré-gravados que são
ler do disco.
Precisamente, ffserver atua como um servidor HTTP, aceitando solicitações POST de ffmpeg adquirir
o fluxo para publicar e atender a clientes RTSP ou solicitações GET de clientes HTTP com o
transmitir conteúdo de mídia.
Um feed é um FFM stream criado por ffmpeg, e enviado para um porto onde ffserver está ouvindo.
Cada feed é identificado por um nome único, correspondendo ao nome do recurso
publicado em ffserver, e é configurado por uma seção "Feed" dedicada no
arquivo de configuração.
O URL de publicação do feed é fornecido por:
http://<ffserver_ip_address>:<http_port>/<feed_name>
onde ffserver_ip_address é o endereço IP da máquina onde ffserver está instalado,
http_port é o número da porta do servidor HTTP (configurado através do Porta HTTP opção),
e nome_do_feed é o nome do feed correspondente definido no arquivo de configuração.
Cada feed está associado a um arquivo que é armazenado em disco. Este arquivo armazenado é usado para
envie dados pré-gravados para um jogador o mais rápido possível quando um novo conteúdo for adicionado em tempo real
tempo para o riacho.
Uma "transmissão ao vivo" ou "transmissão" é um recurso publicado por ffserver, e tornado acessível
através do protocolo HTTP para clientes.
Um stream pode ser conectado a um feed ou a um arquivo. No primeiro caso, o fluxo publicado
é encaminhado do feed correspondente gerado por uma instância em execução de ffmpeg, Na
segundo caso, o fluxo é lido de um arquivo pré-gravado.
Cada stream é identificado por um nome único, correspondendo ao nome do recurso
servido por ffserver, e é configurado por uma seção "Stream" dedicada na configuração
arquivo.
O URL HTTP de acesso ao stream é fornecido por:
http://<ffserver_ip_address>:<http_port>/<stream_name>[<options>]
O URL RTSP de acesso ao stream é fornecido por:
http://<ffserver_ip_address>:<rtsp_port>/<stream_name>[<options>]
nome_do_stream é o nome do fluxo correspondente definido no arquivo de configuração.
opções é uma lista de opções especificadas após o URL que afeta como o fluxo é
servido por ffserver. http_port e rtsp_port são as portas HTTP e RTSP configuradas com
as opções Porta HTTP e Porta RTSP respectivamente.
Caso o stream esteja associado a um feed, os parâmetros de codificação devem ser configurados em
a configuração do fluxo. Eles são enviados para ffmpeg ao configurar a codificação. Esse
permite ffserver para definir os parâmetros de codificação usados pelo ffmpeg codificadores.
A ffmpeg override_ffserver opção de linha de comando permite substituir a codificação
parâmetros definidos pelo servidor.
Vários fluxos podem ser conectados ao mesmo feed.
Por exemplo, você pode ter uma situação descrita pelo seguinte gráfico:
_________ __________
| | | |
ffmpeg 1 ----- | feed 1 | ----- | stream 1 |
\ | _________ | \ | __________ |
\\
\\ __________
\\ | |
\ \ | stream 2 |
\ | __________ |
\
\ _________ __________
\ | | | |
\ | feed 2 | ----- | stream 3 |
| _________ | | __________ |
_________ __________
| | | |
ffmpeg 2 ----- | feed 3 | ----- | stream 4 |
| _________ | | __________ |
_________ __________
| | | |
| arquivo 1 | ----- | stream 5 |
| _________ | | __________ |
FFM, FFM2 formatos
FFM e FFM2 são formatos usados por ffserver. Eles permitem o armazenamento de uma grande variedade de vídeos e
streams de áudio e opções de codificação, e pode armazenar um segmento de tempo em movimento de um infinito
filme ou um filme inteiro.
O FFM é específico da versão e há compatibilidade limitada dos arquivos FFM gerados por um
versão do ffmpeg / ffserver e outra versão do ffmpeg / ffserver. Pode funcionar, mas é
não é garantido que funcione.
FFM2 é extensível, mantendo a compatibilidade e deve funcionar entre diferentes
versões de ferramentas. FFM2 é o padrão.
Status transmitir canais
ffserver suporta uma interface HTTP que expõe o status atual do servidor.
Basta apontar seu navegador para o endereço do fluxo de status especial especificado no
arquivo de configuração.
Por exemplo, se você tem:
Status do formato
# Permitir apenas que pessoas locais obtenham o status
ACL permite localhost
ACL permitir 192.168.0.0 192.168.255.255
então o servidor postará uma página com as informações de status quando o fluxo especial
status.html é requerido.
Como funciona o dobrador de carta de canal do I fazer it funciona?
Como um teste simples, basta executar as duas linhas de comando a seguir, onde INPUTFILE é algum arquivo
que você pode decodificar com ffmpeg:
ffserver -f doc / ffserver.conf &
ffmpeg -i ARQUIVO DE ENTRADA http://localhost: 8090 / feed1.ffm
Neste ponto, você deve ser capaz de ir para a sua máquina Windows e iniciar o Windows Media
Player (WMP). Vá para Abrir URL e digite
http://<linuxbox>:8090/test.asf
Você deve (após um pequeno atraso) ver o vídeo e ouvir o áudio.
AVISO: tentar transmitir test1.mpg não funciona com o WMP, pois ele tenta transferir o
arquivo inteiro antes de começar a jogar. O mesmo é verdade para arquivos AVI.
Você deve editar o ffserver.conf arquivo para atender às suas necessidades (em termos de taxas de quadros, etc.).
Depois instale ffserver e ffmpeg, escreva um script para iniciá-los e pronto.
O Quê outro pode it Faz?
Você pode reproduzir o vídeo de arquivos .ffm que foram gravados anteriormente. No entanto, há um
número de advertências, incluindo o fato de que os parâmetros ffserver devem corresponder ao original
parâmetros usados para registrar o arquivo. Se não o fizerem, então ffserver exclui o arquivo antes
gravar nele. (Agora que escrevo isso, parece quebrado).
Você pode mexer com muitas das opções de codec e parâmetros de codificação, e há um
agrupe mais parâmetros que você não pode controlar. Poste uma mensagem na lista de e-mails, se houver
são alguns parâmetros 'obrigatórios'. Procure em ffserver.conf uma lista dos
controles disponíveis.
Ele irá gerar automaticamente os arquivos ASX ou RAM que são freqüentemente usados em navegadores. Esses
os arquivos são, na verdade, redirecionamentos para o arquivo ASF ou RM subjacente. A razão para isso é
que o navegador geralmente busca o arquivo inteiro antes de iniciar o visualizador externo. o
os arquivos de redirecionamento são muito pequenos e podem ser transferidos rapidamente. [O fluxo em si é
frequentemente 'infinito' e, portanto, o navegador tenta fazer o download e nunca termina.]
Tips
* Quando você se conecta a uma transmissão ao vivo, a maioria dos jogadores (WMP, RA, etc) deseja armazenar um certo
número de segundos de material para que possam exibir o sinal continuamente. Contudo,
ffserver (por padrão) começa a enviar dados em tempo real. Isso significa que há uma pausa de
alguns segundos enquanto o buffer está sendo feito pelo jogador. A boa notícia é que este
pode ser curado adicionando um '? buffer = 5' ao final da URL. Isso significa que o fluxo
deve começar 5 segundos atrás - e assim os primeiros 5 segundos do stream são enviados como
tão rápido quanto a rede permitir. Em seguida, ele irá desacelerar para o tempo real. Isso visivelmente
melhora a experiência de inicialização.
Você também pode adicionar uma instrução 'Preroll 15' no ffserver.conf que adicionará o 15
segundo pré-buffer em todas as solicitações que, de outra forma, não especificam um horário. Além disso,
ffserver irá pular frames até que um key_frame seja encontrado. Isso reduz ainda mais a inicialização
atrasar por não transferir dados que serão descartados.
Sua marca parece da ?amortecedor / Pré-rolagem Pare trabalhar depois de a Tempo?
Acontece que (pelo menos na minha máquina) o número de frames capturados com sucesso é
marginalmente menos do que o número que deveria ser obtido. Isso significa que o carimbo de data / hora em
o fluxo de dados codificados fica atrasado em tempo real. Isso significa que se você disser 'Preroll 10',
então, quando o stream fica 10 ou mais segundos atrasado, não há pré-rolagem restante.
Corrigir isso requer uma mudança nos aspectos internos de como os carimbos de data / hora são tratados.
Será que da "? data =" coisas <span class="word" data-word="work." style="--word-index: 2; translate: none; rotate: none; scale: none; transform: translate(0px, 0px); opacity: 1;">work.</span>
Sim (sujeito às limitações descritas acima). Observe também que sempre que você começa
ffserver, ele exclui o arquivo ffm (se algum parâmetro foi alterado), apagando assim o que
você havia gravado antes.
O formato do "?date=x" é bastante flexível. Você deve usar um dos seguintes
formatos (o 'T' é literal):
* AAAA-MM-DDTHH: MM: SS (hora local)
* AAAA-MM-DDTHH: MM: SSZ (UTC)
Você pode omitir o AAAA-MM-DD e, em seguida, ele se refere ao dia atual. No entanto, note que
? date = 16: 00: 00 refere-se às 16h do dia atual - pode ser no futuro e por isso é
improvável que seja útil.
Você usa isso adicionando? Date = ao final da URL para o stream. Por exemplo:
http://localhost:8080/test.asf?date=2002-07-26T23:05:00.
OPÇÕES
Todas as opções numéricas, se não for especificado de outra forma, aceitam uma string que representa um
número como entrada, que pode ser seguido por um dos prefixos da unidade SI, por exemplo: 'K',
'M' ou 'G'.
Se 'i' for anexado ao prefixo da unidade SI, o prefixo completo será interpretado como um
prefixo de unidade para múltiplos binários, que são baseados em potências de 1024 em vez de potências de
1000. Anexar 'B' ao prefixo da unidade SI multiplica o valor por 8. Isso permite usar,
por exemplo: 'KB', 'MiB', 'G' e 'B' como sufixos numéricos.
As opções que não aceitam argumentos são opções booleanas e definem o valor correspondente
para verdade. Eles podem ser definidos como falsos prefixando o nome da opção com "não". Por exemplo
usar "-nofoo" definirá a opção booleana com o nome "foo" como false.
Corrente especificadores
Algumas opções são aplicadas por fluxo, por exemplo, taxa de bits ou codec. Especificadores de fluxo são usados para
especificar precisamente a quais fluxos uma determinada opção pertence.
Um especificador de fluxo é uma string geralmente anexada ao nome da opção e separada dele
por dois pontos. Por exemplo, "-codec: a: 1 ac3" contém o especificador de fluxo "a: 1", que corresponde ao
segundo fluxo de áudio. Portanto, ele selecionaria o codec ac3 para o segundo fluxo de áudio.
Um especificador de fluxo pode combinar vários fluxos, de modo que a opção seja aplicada a todos
eles. Por exemplo, o especificador de fluxo em "-b: a 128k" corresponde a todos os fluxos de áudio.
Um especificador de fluxo vazio corresponde a todos os fluxos. Por exemplo, "-codec copy" ou "-codec:
copy "copiaria todos os streams sem reencodificar.
As formas possíveis de especificadores de fluxo são:
índice_stream
Corresponde ao fluxo com este índice. Por exemplo, "-threads: 1 4" definiria a contagem de threads para
o segundo fluxo para 4.
stream_type[:índice_stream]
stream_type é um dos seguintes: 'v' ou 'V' para vídeo, 'a' para áudio, 's' para
subtítulo, 'd' para dados e 't' para anexos. 'v' corresponde a todos os streams de vídeo, 'V'
corresponde apenas a streams de vídeo que não são imagens anexadas, miniaturas de vídeo ou capa
artes. Se índice_stream é fornecido, então ele corresponde ao número do fluxo índice_stream disto
modelo. Caso contrário, ele corresponde a todos os fluxos deste tipo.
p:ID_do_programa[:índice_stream]
If índice_stream é fornecido, então ele combina o fluxo com o número índice_stream no
programa com o id ID_do_programa. Caso contrário, ele corresponde a todos os fluxos do programa.
#stream_id or i:stream_id
Combine o fluxo por id de fluxo (por exemplo, PID no contêiner MPEG-TS).
m:chave[:valor]
Corresponde streams com a tag de metadados chave tendo o valor especificado. Se valor não é
fornecido, combina fluxos que contêm a tag fornecida com qualquer valor.
u Corresponde streams com configuração utilizável, o codec deve ser definido e o essencial
informações como dimensão do vídeo ou taxa de amostragem de áudio devem estar presentes.
Note que em ffmpeg, a correspondência por metadados só funcionará corretamente para arquivos de entrada.
Generic opções
Essas opções são compartilhadas entre as ferramentas ff *.
-L Mostrar licença.
-h, - ?, -ajuda, --Socorro [arg]
Mostre ajuda. Um parâmetro opcional pode ser especificado para imprimir a ajuda sobre um item específico.
Se nenhum argumento for especificado, apenas as opções básicas (não avançadas) da ferramenta serão mostradas.
Valores possíveis de arg como:
longo
Imprima opções de ferramentas avançadas, além das opções de ferramentas básicas.
cheio
Imprima uma lista completa de opções, incluindo opções compartilhadas e privadas para codificadores,
decodificadores, demuxers, muxers, filtros, etc.
decodificador =nome_decodificador
Imprime informações detalhadas sobre o decodificador denominado nome_decodificador. Use o - decodificadores
opção para obter uma lista de todos os decodificadores.
codificador =nome_do_codificador
Imprime informações detalhadas sobre o codificador chamado nome_do_codificador. Use o - codificadores
opção para obter uma lista de todos os codificadores.
demuxer =demuxer_name
Imprime informações detalhadas sobre o demuxer chamado demuxer_name. Use o -formatos
opção para obter uma lista de todos os demuxers e muxers.
muxer =muxer_name
Imprime informações detalhadas sobre o muxer nomeado muxer_name. Use o -formatos
opção para obter uma lista de todos os muxers e demuxers.
filtro =nome_do_filtro
Imprime informações detalhadas sobre o nome do filtro nome_do_filtro. Use o -filtros
opção para obter uma lista de todos os filtros.
-versão
Mostrar versão.
-formatos
Mostra os formatos disponíveis (incluindo dispositivos).
-dispositivos
Mostrar dispositivos disponíveis.
-codecs
Mostra todos os codecs conhecidos pelo libavcodec.
Observe que o termo 'codec' é usado em toda esta documentação como um atalho para
o que é mais corretamente chamado de formato de fluxo de bits de mídia.
- decodificadores
Mostrar os decodificadores disponíveis.
- codificadores
Mostra todos os codificadores disponíveis.
-bsfs
Mostrar filtros de fluxo de bits disponíveis.
-protocolos
Mostra os protocolos disponíveis.
-filtros
Mostrar filtros libavfilter disponíveis.
-pix_fmts
Mostra os formatos de pixel disponíveis.
-amostra_fmts
Mostra os formatos de amostra disponíveis.
- layouts
Mostrar nomes de canais e layouts de canais padrão.
-cores
Mostra os nomes das cores reconhecidas.
-fontes dispositivo[,opt1=val1[,opt2=val2] ...]
Mostra fontes autodetectadas do dispositivo de entrada. Alguns dispositivos podem fornecer sistema
nomes de fontes dependentes que não podem ser detectados automaticamente. A lista retornada não pode ser
assumido como sempre completo.
ffmpeg -sources pulse, server = 192.168.0.4
- pias dispositivo[,opt1=val1[,opt2=val2] ...]
Mostra coletores detectados automaticamente do dispositivo de saída. Alguns dispositivos podem fornecer sistema
nomes de coletores dependentes que não podem ser detectados automaticamente. A lista retornada não pode ser assumida
estar sempre completo.
ffmpeg -sinks pulse, server = 192.168.0.4
-loglevel [repetir +]nível de log | -v [repetir +]nível de log
Defina o nível de registro usado pela biblioteca. Adicionar "repeat +" indica que repetido
a saída do log não deve ser compactada na primeira linha e a mensagem "Última mensagem repetida n
vezes "linha será omitida." repetir "também pode ser usado sozinho. Se" repetir "for usado
sozinho, e sem nenhum nível de log anterior definido, o nível de log padrão será usado. Se múltiplo
parâmetros de nível de log são fornecidos, usando 'repeat' não mudará o nível de log. nível de log
é uma string ou um número que contém um dos seguintes valores:
quieto, -8
Não mostre absolutamente nada; fique em silencio.
pânico, 0
Mostrar apenas erros fatais que podem levar o processo a travar, como e afirmar
fracasso. Atualmente não é usado para nada.
fatal, 8
Mostre apenas erros fatais. Estes são erros após os quais o processo absolutamente não pode
continue depois.
erro, 16
Mostra todos os erros, incluindo aqueles que podem ser recuperados.
Aviso, 24
Mostra todos os avisos e erros. Qualquer mensagem relacionada a possivelmente incorreta ou
eventos inesperados serão mostrados.
informação, 32
Mostra mensagens informativas durante o processamento. Isso é além de avisos e
erros. Este é o valor padrão.
verboso, 40
O mesmo que "info", mas mais detalhado.
depurar, 48
Mostra tudo, incluindo informações de depuração.
vestígio, 56
Por padrão, o programa registra em stderr, se a coloração for suportada pelo terminal,
cores são usadas para marcar erros e avisos. A coloração do log pode ser desabilitada configurando o
variável de ambiente AV_LOG_FORCE_NOCOLOR or NO_COLOR, ou pode ser forçado definindo o
variável de ambiente AV_LOG_FORCE_COLOR. O uso da variável de ambiente NO_COLOR
está obsoleto e será eliminado na versão seguinte do FFmpeg.
-relatório
Despeje a linha de comando completa e a saída do console em um arquivo chamado
"program-YYYYMMDD-HHMMSS.log " no diretório atual. Este arquivo pode ser útil para
relatório de erros. Também implica "-loglevel verbose".
Configurando a variável de ambiente FFREREL para qualquer valor tem o mesmo efeito. Se o
valor é uma sequência ':' - chave separada = valor, essas opções afetarão o relatório;
os valores das opções devem ser escapados se contiverem caracteres especiais ou as opções
delimitador ':' (veja a seção `` Citando e escapando '' no manual ffmpeg-utils).
As seguintes opções são reconhecidas:
lima
defina o nome do arquivo a ser usado para o relatório; % p é expandido para o nome do
programa,% t é expandido para um carimbo de data / hora, "%%" é expandido para um "%" simples
nível
defina o nível de detalhamento do log usando um valor numérico (consulte "-loglevel").
Por exemplo, para gerar um relatório para um arquivo denominado ffreport.log usando um nível de registro de 32
(alias para o nível de registro "info"):
FFREPORT = file = ffreport.log: level = 32 ffmpeg -i input output
Erros na análise da variável de ambiente não são fatais e não aparecerão no
relatar.
-hide_banner
Suprimir a impressão de banner.
Todas as ferramentas FFmpeg irão normalmente mostrar um aviso de copyright, opções de construção e biblioteca
versões. Esta opção pode ser usada para suprimir a impressão dessas informações.
-cpuflags bandeiras (global)
Permite definir e limpar sinalizadores de CPU. Esta opção destina-se a testes. Não use
a menos que você saiba o que está fazendo.
ffmpeg -cpuflags -sse + mmx ...
ffmpeg -cpuflags mmx...
ffmpeg -cpuflags 0 ...
Os sinalizadores possíveis para esta opção são:
x86
Hmm
mmxext
ess
sse2
sse2lento
sse3
sse3lento
ssse3
átomo
sse4.1
sse4.2
avx
avx2
xop
fma3
fma4
3d agora
3dnonext
IMC1
IMC2
cmov
ARM
armv5te
braçov6
braçov6t2
vfp
vfpv3
néon
estabelecer
AAArch64
braçov8
vfp
néon
PowerPC
Altivec
Específico Processadores
Pentium2
Pentium3
Pentium4
k6
k62
athlon
Athlonxp
k8
-opencl_bench
Esta opção é usada para avaliar todos os dispositivos OpenCL disponíveis e imprimir os resultados.
Esta opção está disponível apenas quando o FFmpeg foi compilado com "--enable-opencl".
Quando o FFmpeg é configurado com "--enable-opencl", as opções para o OpenCL global
o contexto é definido por meio de -opencl_options. Veja a seção "Opções OpenCL" no ffmpeg-
manual dos utilitários para a lista completa de opções com suporte. Entre outras, essas opções
incluem a capacidade de selecionar uma plataforma e dispositivo específicos para executar o código OpenCL
sobre. Por padrão, o FFmpeg será executado no primeiro dispositivo da primeira plataforma. Enquanto o
opções para o contexto global OpenCL fornecem flexibilidade ao usuário na seleção do
Dispositivo OpenCL de sua escolha, a maioria dos usuários provavelmente gostaria de selecionar o mais rápido
Dispositivo OpenCL para seu sistema.
Esta opção auxilia na seleção da configuração mais eficiente, identificando
o dispositivo apropriado para o sistema do usuário. O benchmark integrado é executado em todos os
Dispositivos OpenCL e o desempenho é medido para cada dispositivo. Os dispositivos no
a lista de resultados é classificada com base em seu desempenho com o dispositivo mais rápido listado
primeiro. O usuário pode posteriormente invocar ffmpeg usando o dispositivo considerado mais
apropriado via -opencl_options para obter o melhor desempenho para o OpenCL
código acelerado.
O uso típico para usar o dispositivo OpenCL mais rápido envolve as seguintes etapas.
Execute o comando:
ffmpeg -opencl_bench
Anote o ID da plataforma (pidx) e ID do dispositivo (didx) do primeiro, ou seja, dispositivo mais rápido
na lista. Selecione a plataforma e o dispositivo usando o comando:
ffmpeg -opencl_options platform_idx = : device_idx = ...
-opencl_options opções (global)
Defina as opções do ambiente OpenCL. Esta opção só está disponível quando FFmpeg foi
compilado com "--enable-opencl".
opções deve ser uma lista de chave=valor pares de opções separados por ':'. Veja o `` OpenCL
Seção de opções '' no manual ffmpeg-utils para a lista de opções suportadas.
Opções AV
Essas opções são fornecidas diretamente pelo libavformat, libavdevice e libavcodec
bibliotecas. Para ver a lista de opções AV disponíveis, use o -Socorro opção. Eles são
separados em duas categorias:
genérico
Essas opções podem ser definidas para qualquer contêiner, codec ou dispositivo. As opções genéricas são
listado em opções de AVFormatContext para contêineres / dispositivos e em AVCodecContext
opções para codecs.
privado
Essas opções são específicas para determinado contêiner, dispositivo ou codec. Opções privadas
estão listados em seus contêineres / dispositivos / codecs correspondentes.
Por exemplo, para gravar um cabeçalho ID3v2.3 em vez de um ID3v2.4 padrão em um arquivo MP3, use
da id3v2_versão opção privada do muxer MP3:
ffmpeg -i input.flac -id3v2_versão 3 saída.mp3
Todas as opções AV do codec são por fluxo e, portanto, um especificador de fluxo deve ser anexado a
Eles.
Note o -nenhuma opção sintaxe não pode ser usada para opções AV booleanas, use -Opção 0/-Opção 1.
Nota: a antiga maneira não documentada de especificar AVOptions por transmissão adicionando v / a / s ao
o nome das opções agora está obsoleto e será removido em breve.
a Principal opções
-f arquivo de configuração
Leia o arquivo de configuração arquivo de configuração. Se não for especificado, será lido por padrão de
/etc/ffserver.conf.
-n Ative o modo de não inicialização. Esta opção desativa todas as diretivas "Launch" dentro do
vários " "seções. Desde ffserver não vai lançar nenhum ffmpeg instâncias, você
terá que iniciá-los manualmente.
-d Ative o modo de depuração. Esta opção aumenta o detalhamento do log e direciona as mensagens de log para
stdout. Quando especificado, o Log personalizado opção é ignorada.
CONFIGURAÇÃO ARQUIVO SINTAXE
ffserver lê um arquivo de configuração contendo opções e configurações globais para cada fluxo
e alimentação.
O arquivo de configuração consiste em opções globais e seções dedicadas, que devem ser
apresentado por "NOME DA SEÇÃO ARGS> "em uma linha separada e deve ser encerrado por uma linha em
o formulário "</NOME DA SEÇÃO> ". ARGS é opcional.
Atualmente, as seguintes seções são reconhecidas: alimentação, Corrente, Redirecionar.
Uma linha começando com "#" é ignorada e tratada como um comentário.
Os nomes das opções e seções não diferenciam maiúsculas de minúsculas.
ACL sintaxe
Uma ACL (Lista de Controle de Acesso) especifica o endereço que tem permissão para acessar um determinado
stream ou para escrever um determinado feed.
Aceita os seguintes formulários
· Permitir / negar acesso a endereço.
ACL ALLOW
ACL DENY
· Permitir / negar acesso a intervalos de endereços de primeiro_endereço para último_endereço.
ACL ALLOW
ACL DENY
Você pode repetir a permissão / negação da ACL com a freqüência que desejar. É por fluxo. o
a primeira correspondência define a ação. Se não houver correspondências, o padrão é o inverso
da última instrução ACL.
Assim, 'ACL permitir localhost' permite o acesso apenas a partir de localhost. 'ACL deny 1.0.0.0
1.255.255.255 'negaria toda a rede 1 e permitiria todos os outros.
Global opções
Porta HTTP número da porta
Porta número da porta
Porta RTSP número da porta
Porta HTTP define o número da porta TCP de escuta do servidor HTTP, Porta RTSP define o servidor RTSP
número da porta TCP de escuta.
Porta é o equivalente a Porta HTTP e está obsoleto.
Você deve selecionar uma porta diferente do seu servidor da web HTTP padrão se ele estiver em execução
no mesmo computador.
Se não for especificado, nenhum servidor correspondente será criado.
Endereço HTTPBind endereço de IP
Endereço de ligação endereço de IP
RTSPBindEndereço endereço de IP
Defina o endereço ao qual o servidor HTTP / RTSP está vinculado. Só é útil se você tiver vários
interfaces de rede.
Endereço de ligação é o equivalente a Endereço HTTPBind e está obsoleto.
MaxHTTPConexões n
Defina o número de conexões HTTP simultâneas que podem ser tratadas. Tem que ser definido
antes da MaxClients parâmetro, uma vez que define o MaxClients limite máximo.
O valor padrão é 2000.
MaxClients n
Defina o número de solicitações simultâneas que podem ser tratadas. Desde a ffserver é muito rápido,
é mais provável que você queira deixar este alto e usar Largura de banda máxima.
O valor padrão é 5.
Largura de banda máxima kbps
Defina a quantidade máxima de kbit / s que você está preparado para consumir ao fazer streaming para
clientes.
O valor padrão é 1000.
Log personalizado nome do arquivo
Defina o arquivo de log de acesso (usa o formato de arquivo de log padrão do Apache). '-' é o padrão
saída.
Se não for especificado ffserver não produzirá nenhum log.
No caso da opção de linha de comando -d é especificado, esta opção é ignorada e o log é
gravado na saída padrão.
NoDaemon
Defina o modo no-daemon. Esta opção está atualmente ignorada desde agora ffserver sempre
funcionam no modo sem daemon e estão obsoletos.
Use padrões
Sem Padrões
Controle se as opções de codec padrão são usadas para todos os fluxos ou não. Cada
stream pode sobrescrever esta configuração por conta própria. O padrão é Use padrões. O último
a ocorrência substitui as definições anteriores se houver várias.
alimentação seção
Uma seção Feed define um feed fornecido para ffserver.
Cada feed ao vivo contém uma sequência de vídeo e / ou áudio proveniente de um ffmpeg codificador ou
outra ffserver. Esta sequência pode ser codificada simultaneamente com vários codecs em
várias resoluções.
Uma especificação de instância de feed é introduzida por uma linha no formulário:
onde FEED_FILENAME especifica o nome exclusivo do fluxo FFM.
As opções a seguir são reconhecidas em uma seção Feed.
Envie o nome do arquivo
Arquivo somente leitura nome do arquivo
Defina o caminho onde o arquivo de feed é armazenado no disco.
Se não for especificado, o /tmp/FEED.ffm é assumido, onde ALIMENTAÇÃO é o nome do feed.
If Arquivo somente leitura é usado, o arquivo é marcado como somente leitura e não será excluído ou
atualizado.
Truncar
Truncar o arquivo de feed, em vez de anexá-lo. Por padrão ffserver irá anexar
dados para o arquivo, até que o valor do tamanho máximo do arquivo seja alcançado (consulte FileMaxSize
opção).
FileMaxSize tamanho
Defina o tamanho máximo do arquivo de feed em bytes. 0 significa ilimitado. As pós-correções "K"
(2 ^ 10), "M" (2 ^ 20) e "G" (2 ^ 30) são reconhecidos.
O valor padrão é 5M.
Apresentação livro args
Lançar um ffmpeg comando ao criar ffserver.
args deve ser uma sequência de argumentos a serem fornecidos a um ffmpeg instância. O primeiro
o argumento fornecido é ignorado e substituído por um caminho com o mesmo nome de diretório de
da ffserver instância, seguido pelo argumento restante e terminado com um caminho
correspondente ao feed.
Quando o processo lançado sai, ffserver irá iniciar outra instância do programa.
No caso de você precisar de um mais complexo ffmpeg configuração, por exemplo, se você precisa gerar
vários feeds FFM com um único ffmpeg por exemplo, você deve lançar ffmpeg à mão.
Esta opção é ignorada no caso da opção de linha de comando -n é especificado.
ACL especulação
Especifique a lista de endereços IP permitidos ou negados para gravar o feed. Múltiplo
As opções de ACL podem ser especificadas.
Corrente seção
Uma seção Stream define um stream fornecido por ffserver, e identificado por um único nome.
O fluxo é enviado ao responder a uma solicitação contendo o nome do fluxo.
Uma seção de fluxo deve ser introduzida pela linha:
onde STREAM_NAME especifica o nome exclusivo do fluxo.
As seguintes opções são reconhecidas em uma seção Stream.
As opções de codificação são marcadas com o codificação tag, e eles são usados para definir a codificação
parâmetros e são mapeados para opções de codificação libavcodec. Nem todas as opções de codificação são
suportado, em particular não é possível definir opções privadas do codificador. Em ordem de
sobrescrever as opções de codificação especificadas por ffserver, você pode usar o ffmpeg
override_ffserver opção de linha de comando.
Apenas um dos alimentação e Envie o opções devem ser definidas.
alimentação nome_do_feed
Defina o feed de entrada. nome_do_feed deve corresponder a um feed existente definido em um "Feed"
seção.
Quando esta opção é definida, as opções de codificação são usadas para configurar a codificação operada por
o remoto ffmpeg processo.
Envie o nome do arquivo
Defina o nome do arquivo do arquivo de entrada pré-gravado para transmitir.
Quando esta opção é definida, as opções de codificação são ignoradas e o conteúdo do arquivo de entrada é
transmitido novamente como está.
Formato nome_formato
Defina o formato do fluxo de saída.
Deve ser o nome de um formato reconhecido pelo FFmpeg. Se definido para estado, é tratado como
um fluxo de status.
Formato de entrada nome_formato
Defina o formato de entrada. Se não for especificado, é adivinhado automaticamente.
Pré-rolagem n
Defina como o número de segundos anteriores ao início. Observe que a maioria dos jogadores
armazenará em buffer de 5 a 10 segundos de vídeo, e você também precisa permitir que um quadro-chave apareça
no fluxo de dados.
O valor padrão é 0.
IniciarSendOnKey
Não envie stream até que obtenha o primeiro quadro-chave. Por padrão ffserver enviará
dados imediatamente.
Tempo máximo n
Defina o número de segundos para executar. Este valor define a duração máxima do stream a
o cliente poderá receber.
Um valor de 0 significa que nenhum limite é definido para a duração do fluxo.
ACL especulação
Defina ACL para o fluxo.
ACL dinâmica especulação
Opção RTSP opção
Endereço Multicast endereço
MulticastPort porta
Multicast TTL número inteiro
Sem Loop
URL do favicon url
Defina favicon (ícone favorito) para a página de status do servidor. É ignorado para regular
córregos.
Autor valor
Comentário valor
Direitos de Autor valor
Título valor
Defina os metadados correspondentes à opção. Todas essas opções foram descontinuadas em favor de
metadados.
metadados chave valor
Defina o valor dos metadados no fluxo de saída.
Use padrões
Sem Padrões
Controle se as opções de codec padrão são usadas para o fluxo ou não. O padrão é
Use padrões a menos que seja desabilitado globalmente.
Sem áudio
Nenhum vídeo
Suprimir áudio / vídeo.
Codec de áudio nome_codec (codificação, áudio)
Defina o codec de áudio.
Taxa de bits do áudio taxas (codificação, áudio)
Defina a taxa de bits para o fluxo de áudio em kbits por segundo.
Canais de áudio n (codificação, áudio)
Defina o número de canais de áudio.
Taxa de amostra de áudio n (codificação, áudio)
Defina a frequência de amostragem de áudio. Ao usar taxas de bits baixas, você deve diminuir isso
frequência para 22050 ou 11025. As frequências suportadas dependem do áudio selecionado
codec.
AVOptionÁudio [codec:]opção valor (codificação, áudio)
Defina a opção genérica ou privada para fluxo de áudio. A opção privada deve ser prefixada com
o nome do codec ou codec deve ser definido antes.
AVPresetÁudio predefinido (codificação, áudio)
Definir predefinição para fluxo de áudio.
Codec de vídeo nome_codec (codificação, vídeo)
Defina o codec de vídeo.
Taxa de bits de vídeo n (codificação, vídeo)
Defina a taxa de bits para o stream de vídeo em kbits por segundo.
Faixa de taxa de bits de vídeo alcance (codificação, vídeo)
Defina o intervalo da taxa de bits do vídeo.
Um intervalo deve ser especificado no formulário taxa mínima-taxa máxima, e especifica o taxa mínima e
taxa máxima opções de codificação expressas em kbits por segundo.
VideoBitRateRangeTolerância n (codificação, vídeo)
Defina a tolerância da taxa de bits de vídeo em kbits por segundo.
PixelFormat formato_pixel (codificação, vídeo)
Defina o formato do pixel do vídeo.
depurar número inteiro (codificação, vídeo)
Definir vídeo depurar opção de codificação.
Estrito número inteiro (codificação, vídeo)
Definir vídeo rigoroso opção de codificação.
Tamanho do buffer de vídeo n (codificação, vídeo)
Defina o tamanho do buffer de controle de proporção, expresso em KB.
Taxa de quadros de vídeo n (codificação, vídeo)
Defina o número de quadros de vídeo por segundo.
Tamanho do vídeo (codificação, vídeo)
Defina o tamanho do quadro do vídeo, deve ser uma abreviatura ou na forma WxH. Ver da
Vídeo tamanho seção in da ffmpeg-utils(1) manual.
O valor padrão é "160x128".
VídeoIntraOnly (codificação, vídeo)
Transmita apenas intraquadros (útil para taxas de bits baixas, mas mata a taxa de quadros).
VideoGopSize n (codificação, vídeo)
Se não for apenas intra, um quadro intra é transmitido a todos os quadros VideoGopSize. Vídeo
a sincronização só pode começar em um intraquadro.
Tag de vídeo etiqueta (codificação, vídeo)
Definir tag de vídeo.
Alta qualidade de vídeo (codificação, vídeo)
Vídeo4MotionVetor (codificação, vídeo)
BitExato (codificação, vídeo)
Definir sinalizador de codificação bitexact.
IdctSimples (codificação, vídeo)
Defina um algoritmo IDCT simples.
Escala Q n (codificação, vídeo)
Habilite a codificação de qualidade constante e defina o valor de qscale (escala de quantização) de vídeo,
Expresso em n Unidades QP.
VídeoQMin n (codificação, vídeo)
VídeoQMax n (codificação, vídeo)
Defina o qmin / qmax do vídeo.
VídeoQDiff número inteiro (codificação, vídeo)
Definir vídeo diferença opção de codificação.
Máscara Lumi flutuar (codificação, vídeo)
Máscara Negra flutuar (codificação, vídeo)
Conjunto máscara_lumi/máscara_escura opções de codificação.
AVOptionVideo [codec:]opção valor (codificação, vídeo)
Defina a opção genérica ou privada para stream de vídeo. A opção privada deve ser prefixada com
o nome do codec ou codec deve ser definido antes.
AVPresetVídeo predefinido (codificação, vídeo)
Definir predefinição para fluxo de vídeo.
predefinido deve ser o caminho de um arquivo predefinido.
servidor estado transmitir canais
Um fluxo de status do servidor é um fluxo especial que é usado para mostrar estatísticas sobre o
ffserver operações.
Deve ser especificado configurando a opção Formato para estado.
Redirecionar seção
Uma seção de redirecionamento especifica para onde redirecionar o URL solicitado para outra página.
Uma seção de redirecionamento deve ser introduzida pela linha:
onde NOME é o nome da página que deve ser redirecionada.
Ele só aceita a opção URL, que especifica o URL de redirecionamento.
STREAM EXEMPLOS
· JPEG multiparte
Alimentar feed1.ffm
Formato mpjpeg
Taxa de quadros de vídeo 2
VídeoIntraOnly
Sem áudio
Estrito -1
· JPEG único
Alimentar feed1.ffm
Formato jpeg
Taxa de quadros de vídeo 2
VídeoIntraOnly
Tamanho do vídeo 352 x 240
Sem áudio
Estrito -1
· Clarão
Alimentar feed1.ffm
Formato SWF
Taxa de quadros de vídeo 2
VídeoIntraOnly
Sem áudio
· Compatível com ASF
Alimentar feed1.ffm
Formatar asf
Taxa de quadros de vídeo 15
Tamanho do vídeo 352 x 240
Taxa de bits de vídeo 256
Tamanho do buffer de vídeo 40
VideoGopTamanho 30
Taxa de bits de áudio 64
IniciarSendOnKey
· Áudio MP3
Alimentar feed1.ffm
Formato mp2
Audio Codec mp3
Taxa de bits de áudio 64
Canais de áudio 1
Taxa de amostra de áudio 44100
Nenhum vídeo
· Áudio Ogg Vorbis
Alimentar feed1.ffm
Título de metadados "Título do stream"
Taxa de bits de áudio 64
Canais de áudio 2
Taxa de amostra de áudio 44100
Nenhum vídeo
· Real com áudio apenas a 32 kbits
Alimentar feed1.ffm
Formato rm
Taxa de bits de áudio 32
Nenhum vídeo
· Real com áudio e vídeo a 64 kbits
Alimentar feed1.ffm
Formato rm
Taxa de bits de áudio 32
Taxa de bits de vídeo 128
Taxa de quadros de vídeo 25
VideoGopTamanho 25
· Para stream vindo de um arquivo: você só precisa definir o nome do arquivo de entrada e, opcionalmente
um novo formato.
Arquivo "/usr/local/httpd/htdocs/tlive.rm"
Sem áudio
Arquivo "/usr/local/httpd/htdocs/test.asf"
Sem áudio
Autor de metadados "Eu"
Direitos autorais de metadados "Super MegaCorp"
Título de metadados "Test stream from disk"
Comentário de metadados "Comentário de teste"
Use ffserver online usando serviços onworks.net