{"id":1056,"date":"2025-08-01T19:35:49","date_gmt":"2025-08-01T22:35:49","guid":{"rendered":"https:\/\/www.apptecbr.com\/pt-br\/?page_id=1056"},"modified":"2025-08-11T13:57:26","modified_gmt":"2025-08-11T16:57:26","slug":"_packager-changelog","status":"publish","type":"page","link":"https:\/\/www.apptecbr.com\/pt-br\/_packager-changelog\/","title":{"rendered":"Packager changelog"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1056\" class=\"elementor elementor-1056\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d8ba987 e-flex e-con-boxed e-con e-parent\" data-id=\"5d8ba987\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-206f4e7 elementor-widget elementor-widget-spacer\" data-id=\"206f4e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-401528c e-flex e-con-boxed e-con e-parent\" data-id=\"401528c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40012f6 elementor-widget elementor-widget-heading\" data-id=\"40012f6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"notranslate\">Packager Changelog<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-27efc66 e-flex e-con-boxed e-con e-parent\" data-id=\"27efc66\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d236ad elementor-widget elementor-widget-shortcode\" data-id=\"2d236ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"viaweb-showtxt\"><pre style=\"white-space: pre-wrap; line-height: 1.0; margin: 20;\">Vers\u00e3o 2.1.0d\r\n    M- Habilita filtro de desentrela\u00e7amento (deinterlace) quando o video de\r\n       entrada no transcoder n\u00e3o \u00e9 progressivo. Isso melhora a qualidade\r\n       de sa\u00edda quando o video de entrada tem baixa qualidade e \u00e9 entrela\u00e7ado\r\n\r\nVers\u00e3o 2.1.0c\r\n    M- API getInfo() retorna tamb\u00e9m side-data que volta no \"probe\" dos canais\r\n\r\nVers\u00e3o 2.1.0b\r\n    M- Retorna informa\u00e7\u00f5es sobre RamDisk (se usado) na API getInfo()\r\n    M- Packager adicionais num mesmo server usam a mesma pasta para os v\u00eddeos\r\n\r\nVers\u00e3o 2.1.0a\r\n    M- Adicionar sinalizador de suporte de entrada ABR em info-data\r\n\r\nVers\u00e3o 2.1.0\r\n    I- Adicionar suporte para entrada multi-perfil (ABR)\r\n\r\nVers\u00e3o 2.0.2\r\n    M- Caso o fluxo de entrada de muitos canais n\u00e3o esteja presente, poderia haver um atraso\r\n       excessivo na tela de gerenciamento\r\n\r\nVers\u00e3o 2.0.1\r\n    M- Transcodifica\u00e7\u00e3o: adicionar metadados de \u00e1udio para HLS\r\n    C- Poderia falhar ao iniciar um canal se a trilha de \u00e1udio n\u00e3o tivesse propriedades \"tags\"\r\n\r\nVers\u00e3o 2.0.0c\r\n    M- Impedir exce\u00e7\u00e3o caso o endere\u00e7o de origem esteja incorreto\r\n\r\nVers\u00e3o 2.0.0b\r\n    M- Manter o esquema de URL do endere\u00e7o do middleware, se presente em setConfig()\r\n\r\nVers\u00e3o 2.0.0a\r\n    M- getLogFile() n\u00e3o estava funcionando para solicita\u00e7\u00f5es espec\u00edficas do canal\r\n\r\nVers\u00e3o 2.0.0\r\n    I- Suporte para m\u00faltiplos bitrates (ABR)\r\n    M- Suporte para sa\u00edda UDP\r\n    M- Suporte \"demux\" para m\u00faltiplos canais de \u00e1udio\r\n    M- Suporte para entrada de \u00e1udio ac3 5.1\r\n    M- A pasta de v\u00eddeo pode ser configurada para qualquer subpasta em \/var\/www\r\n    M- Verificar o fluxo antes de iniciar o canal\r\n    M- Endere\u00e7o de origem de multicast agora aceita o formato ip$intf, onde intf\r\n       \u00e9 o IP da placa de rede para substituir a interface padr\u00e3o\r\n    M- Edge e n\u00e3o transmuxing \u00e9 inferido se a configura\u00e7\u00e3o do canal for:\r\n        . formato de sa\u00edda HLS\r\n        . fluxo de entrada \u00e9 HTTP\r\n        . Nenhuma transcodifica\u00e7\u00e3o definida\r\n    M- A transcodifica\u00e7\u00e3o de \u00e1udio pode ser desabilitada\r\n    M- Salva a URL do middleware no arquivo de configura\u00e7\u00e3o\r\n    M- Retorna o uso da CPU por canal\r\n    M- Retorna a temperatura da GPU\r\n\r\nVers\u00e3o 1.4.8c\r\n    M- N\u00edvel de LOG definido a partir do arquivo INI, n\u00e3o do script do monitor\r\n\r\nVers\u00e3o 1.4.8b\r\n    C- Limita os dados do hist\u00f3rico a 2000 entradas\r\n\r\nVers\u00e3o 1.4.8a\r\n    M- Limpa o hist\u00f3rico quando o canal \u00e9 adicionado ou reiniciado\r\n\r\nVers\u00e3o 1.4.8\r\n    M- Janela de hist\u00f3rico configur\u00e1vel, o padr\u00e3o \u00e9 7\r\n    C- A limpeza autom\u00e1tica do hist\u00f3rico era feita apenas quando um novo evento era adicionado.\r\n       Alterado para ser feito a cada chamada para limpar o hist\u00f3rico\r\n\r\nVers\u00e3o 1.4.7\r\n    I- Adicionar suporte para limpeza de hist\u00f3rico\r\n    M- Incluir start-fail nos dados hist\u00f3ricos\r\n\r\nVers\u00e3o 1.4.6a\r\n      M- Visualiza\u00e7\u00e3o de dados hist\u00f3ricos\r\n\r\nVers\u00e3o 1.4.6\r\n      M- Mostrar tr\u00e1fego de rede para as interfaces usadas pelo Packager\r\n\r\nVers\u00e3o 1.4.5\r\n      I- Adicionar estat\u00edstica de start-fail\r\n      M- A contagem de falhas s\u00f3 aumentou se o canal estivesse em execu\u00e7\u00e3o\r\n\r\nVers\u00e3o 1.4.4b\r\n      M- Mostrar espa\u00e7o em disco ocupado pelos v\u00eddeos\r\n\r\nVers\u00e3o 1.4.4a\r\n      M- Informar a taxa de bits m\u00e9dia de cada canal\r\n\r\nVers\u00e3o 1.4.4\r\n      M- Mudan\u00e7a no algoritmo de detec\u00e7\u00e3o de stall\r\n           tempo           stall-interval (em segundos)\r\n             0 ou omitido  sem verifica\u00e7\u00e3o de stall\r\n             1-5           stall-interval * chunk_size * nchunks\r\n              >5           stall-interval \u00e9 o valor em segundos\r\n      M- Se a depura\u00e7\u00e3o estiver habilitada, fa\u00e7a uma c\u00f3pia do stream stalled\r\n\r\nVers\u00e3o 1.4.3\r\n      C- N\u00e3o estava detectando falha no canal se o processo monitor\r\n         iniciasse logo ap\u00f3s 0 boot\r\n\r\nVers\u00e3o 1.4.2\r\n      C- Corrigir corrup\u00e7\u00e3o em arquivos INI e Hist\u00f3rico\r\n\r\nVers\u00e3o 1.4.1\r\n      I- Suporte para http como origem - Modo Edge\r\n\r\nVers\u00e3o 1.4.0a\r\n      M- Stall \u00e9 detectado se nenhuma altera\u00e7\u00e3o no m3u8 em 3*chunk-length\r\n      M- Adicionar marca de data\/hora de estat\u00edsticas\r\n      M- Adicionar informa\u00e7\u00f5es de cpuload e gpuload\r\n      C- Corrigir condi\u00e7\u00e3o de \"race\" no arquivo INI\r\n\r\nVers\u00e3o 1.4.0\r\n      I- Adicionar dados hist\u00f3ricos por canal\r\n\r\nVers\u00e3o 1.3.0\r\n      M- O processo Monitor \u00e9 executado continuamente\r\n      M- As estat\u00edsticas s\u00e3o redefinidas sempre que o processo do monitor (re)inicia\r\n\r\nVers\u00e3o 1.2.3\r\n      M- O intervalo de travamento do Monitor \u00e9 tratado como:\r\n          <= 10: como minutos\r\n           > 10: como segundos\r\n      M- Automatizar a reinicializa\u00e7\u00e3o dos canais na inicializa\u00e7\u00e3o do sistema\r\n\r\nVers\u00e3o 1.2.2\r\n      I- Adicionar funcionalidade do servidor de origem\r\n\r\nVers\u00e3o 1.2.1\r\n      M- Canal s\u00f3 \u00e9 exclu\u00eddo do Packager quando desativado no Middleware\r\n\r\nVers\u00e3o 1.2.0\r\n      I- Adicionar suporte para transcodifica\u00e7\u00e3o - taxa de bits \u00fanica\r\n\r\nVers\u00e3o 1.1.0\r\n      I- Implementa suporte para Multi Programming Transport Stream (MPTS)\r\n      M- Suporta m\u00faltiplas inst\u00e2ncias do Packager no mesmo servidor\r\n      M- Adicionar suporte para TS (mpegts) transportados por HTTP\r\n\r\nVers\u00e3o 1.0.4\r\n      M- Detecta canais que n\u00e3o criaram o arquivo playlist (m3u8)\r\n         depois de algum tempo (inicializa\u00e7\u00e3o falha)\r\n      M- Acumula o n\u00famero de tentativas de inicio dos canais\r\n\r\nVers\u00e3o 1.0.3\r\n      C- Evitar condi\u00e7\u00e3o \"race\" entre API e Monitor enquanto\r\n         atualizando arquivo INI\r\n\r\nVers\u00e3o 1.0.2\r\n      M- Melhor LOG\r\n      C- Impedir que o Monitor verifique erros antes de, pelo menos, 10\r\n         minutos se passarem desde a inicializa\u00e7\u00e3o. Isso evita detectar falsamente\r\n         erro antes ou durante a execu\u00e7\u00e3o do startall, o que pode\r\n         iniciar 2 ffmpegs por canal\r\n\r\nVers\u00e3o 1.0.1\r\n      C- O monitor n\u00e3o estava detectando canais com erro, ou seja,\r\n         ativo, mas ffmpeg n\u00e3o est\u00e1 em execu\u00e7\u00e3o\r\n\r\nVers\u00e3o 1.0.0\r\n      I- Primeira vers\u00e3o, com suporte apenas \u00e0 segmenta\u00e7\u00e3o\r\n\r\nLegenda:\r\n  I- Novos recursos ou altera\u00e7\u00f5es significantes em recursos existentes\r\n  M- Alterac\u00f5es menos significantes em recursos existentes\r\n  C- Corre\u00e7\u00e3o de problemas\r\n<\/pre><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Packager Changelog<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-1056","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/pages\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/comments?post=1056"}],"version-history":[{"count":16,"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/pages\/1056\/revisions"}],"predecessor-version":[{"id":1153,"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/pages\/1056\/revisions\/1153"}],"wp:attachment":[{"href":"https:\/\/www.apptecbr.com\/pt-br\/wp-json\/wp\/v2\/media?parent=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}