AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1521290
Accepted
Ninbura
Ninbura
Asked: 2020-01-30 20:50:43 +0800 CST2020-01-30 20:50:43 +0800 CST 2020-01-30 20:50:43 +0800 CST

A cópia de fluxo não está funcionando corretamente em vídeo de várias faixas gerado por OBS (FFmpeg)

  • 772

Estou simplesmente tentando extrair uma faixa de áudio de um vídeo de várias faixas gerado pelo OBS usando -c:a copypara evitar a recodificação, comando completo:

ffmpeg -y -i "C:\Users\gabri\Videos\OBS Replay Buffer\Replay 2020-01-26 00-19-35.mkv" `
-map a:2 -c:a copy "C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav"

No entanto, o arquivo resultante está claramente corrompido. Ele contém apenas segmentos silenciosos / curtos (basicamente blips) do que deveria e reproduz apenas 1/50 de sua duração real. Eu até tentei reproduzir o arquivo usando o FFplay:

ffplay -i "C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav"

sem sorte, observando os mesmos resultados. Testando este comando em outros vídeos do OBS com uma em vez de várias faixas de áudio, e os vídeos gerados pelo OBS com diferentes contêineres (mp4, flv, etc.) cuspiram os mesmos arquivos ilegíveis. Usando exatamente as mesmas opções / comando em um vídeo gerado pelo FFmpeg, no entanto, e outros arquivos de vídeo que eu tinha em mãos, parecia funcionar muito bem. Eu tentei recodificar o áudio com estas opções:

ffmpeg -y -i "C:\Users\gabri\Videos\OBS Replay Buffer\Replay 2020-01-26 00-19-35.mkv" `
-map a:2 -c:a aac -ar 44100 -b:a 320k "C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav"

e para minha surpresa obtive os mesmos resultados novamente. Eu descobri que a única maneira de fazer com que os arquivos wav recém-gerados realmente se pareçam com o áudio dos vídeos gerados pelo OBS, eu tinha que usar o pcm_s16lecodificador, exemplo:

ffmpeg -y -i "C:\Users\gabri\Videos\OBS Replay Buffer\Replay 2020-01-26 00-19-35.mkv" `
-map a:2 -c:a pcm_s16le "C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav"

Com essas opções, o novo arquivo wav é reproduzido exatamente como você esperaria. No entanto, agora tenho que esperar que ele recodifique o arquivo, em alguns casos várias vezes, dependendo do cenário. Nunca tive falha na cópia de fluxo em nenhum outro arquivo de vídeo / áudio em que o usei, alguém sabe o que pode estar causando isso?

Saída completa do FFmpeg:

PS C:\Users\gabri> ffmpeg -y -i "C:\Users\gabri\Videos\OBS Replay Buffer\Replay 2020-01-26 00-19-35.mkv" `
>> -map a:2 -c:a copy "C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav"                                                ffmpeg version git-2020-01-29-de1b2aa Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20200122
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 38.100 / 56. 38.100
  libavcodec     58. 67.100 / 58. 67.100
  libavformat    58. 36.100 / 58. 36.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 71.100 /  7. 71.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, matroska,webm, from 'C:\Users\gabri\Videos\OBS Replay Buffer\Replay 2020-01-26 00-19-35.mkv':
  Metadata:
    ENCODER         : Lavf58.20.100
  Duration: 00:04:58.52, start: 0.000000, bitrate: 60553 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(tv, bt470bg/bt709/bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
    Metadata:
      DURATION        : 00:04:58.517000000
    Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track1
      DURATION        : 00:04:58.423000000
    Stream #0:2: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track2
      DURATION        : 00:04:58.423000000
    Stream #0:3: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track3
      DURATION        : 00:04:58.423000000
    Stream #0:4: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track4
      DURATION        : 00:04:58.423000000
    Stream #0:5: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track5
      DURATION        : 00:04:58.423000000
    Stream #0:6: Audio: aac (LC), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track6
      DURATION        : 00:04:58.423000000
Output #0, wav, to 'C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav':
  Metadata:
    ISFT            : Lavf58.36.100
    Stream #0:0: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 44100 Hz, stereo, fltp (default)
    Metadata:
      title           : Track3
      DURATION        : 00:04:58.423000000
Stream mapping:
  Stream #0:3 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=   11658kB time=00:04:58.42 bitrate= 320.0kbits/s speed= 331x
video:0kB audio:11658kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000787%

Aqui estão minhas configurações de OBS: https://postimg.cc/gallery/1kahe1o4q/

E por último aqui está um dos arquivos de vídeo que me dá dor de cabeça: https://drive.google.com/open?id=10QneHPO_lRMDA0qNFCuyn5S90Eubn8q0

video audio
  • 2 2 respostas
  • 267 Views

2 respostas

  • Voted
  1. Best Answer
    Gyan
    2020-01-31T10:07:45+08:002020-01-31T10:07:45+08:00

    O AAC deve estar no enquadramento ADTS, mas o multiplexador WAV não tem capacidade para reformatar fluxos AAC, portanto, canalize-o através do multiplexador MPEG-TS que o faz.

    ffmpeg -i "C:\Users\gabri\Videos\OBS Replay Buffer\Replay 2020-01-26 00-19-35.mkv" -map a:2 -c:a copy -f mpegts - | ffmpeg -y -f mpegts -i - -c copy "C:\Users\gabri\Videos\OBS Replay Buffer\Test.wav"

    • 1
  2. szatmary
    2020-01-31T08:05:07+08:002020-01-31T08:05:07+08:00

    As faixas de áudio são aac. mas estão escrevendo para um wav. Mas você está dizendo ao ffmpeg que ele não deve converter de aac para wav via -c:a copy. Portanto, é impossível para o ffmpeg lidar com esse requisito.

    • 0

relate perguntas

  • Codec e configuração para saída ffmpeg de taxa de bits mais baixa

  • OBS Studio—'Falha ao abrir o codec NVENC: função não implementada'

  • Como salvar o fluxo de vídeo TS com ffmpeg 2.0.2?

  • Os vídeos compactados podem ser decodificados de volta ao formato original não compactado?

  • O fone de ouvido bluetooth Sony WH-1000XMX2 não consegue se conectar corretamente automaticamente

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve