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[ffmpeg](computer)

Martin Hope
Tony M
Asked: 2025-04-20 04:42:13 +0800 CST

Como adicionar um idioma adicional a um vídeo multilíngue com o FFmpeg?

  • 6

Quero usar o FFmpeg para adicionar faixas de áudio e legendas em inglês ( eng.mp3e eng.srt) a um vídeo (podemos chamá-lo de 3.mp4) que já contém italiano, francês e alemão. O crucial é que o vídeo final permita alternar entre faixas de áudio e legendas em diferentes idiomas.

Para resumir, eu quero :3.mp4 + eng.mp3 + eng.srt → 3plus1.mp4

Eu tentei isso, mas não funciona: :

ffmpeg -i 3.mp4 -i eng.mp3 -i eng.srt \
-map 0:v -map 0:a -map 1:a -map 2:s:0 \
-metadata:s:a:0 language=eng -metadata:s:s:0 language=eng \
-c:s:0 mov_text -shortest 3plus1.mp4

Posso fazer um vídeo do zero com 4 idiomas ( 4.mp4) começando com todos os .mp3arquivos .srte da seguinte maneira (observe que a parte do vídeo é produzida dinamicamente como um fundo preto; isso mantém os arquivos pequenos para testes e o vídeo não é o ponto aqui):

Isto funciona :ita.mp3 + fre.mp3 + ger.mp3 + eng.mp3 + ita.srt + fre.srt + ger.srt + eng.srt → 4.mp4

ffmpeg -f lavfi -i "color=color=black:s=1280x720" \
-i ita.mp3 -i fre.mp3 -i ger.mp3 -i eng.mp3 \
-i ita.srt -i fre.srt -i ger.srt -i eng.srt \
-map 0:v -map 1:a:0 -map 2:a:0 -map 3:a:0 -map 4:a:0 \
-map 5:s:0 -map 6:s:0 -map 7:s:0 -map 8:s:0 \
-metadata:s:a:0 language=ita -metadata:s:a:1 language=fra -metadata:s:a:2 language=ger -metadata:s:a:3 language=eng \
-metadata:s:s:0 language=ita -metadata:s:s:1 language=fra -metadata:s:s:2 language=ger -metadata:s:s:3 language=eng \
-c:s:0 mov_text -c:s:1 mov_text -c:s:2 mov_text -c:s:3 mov_text \
-shortest 4.mp4

Não vejo como fazer upload dos arquivos que estou usando para testes aqui, mas encontrei um site chamado disroot que parece permitir o compartilhamento de arquivos.

Este link é para um count.ziparquivo que criei com todos os arquivos que tenho usado para testes.

Editar: O comando fornecido por @Alain1A45 quase funciona:

ffmpeg -i 3.mp4 -i eng.mp3 -i eng.srt -map 0:v -map 0:a -map 1 -map 0:s -map 2 -c copy -c:s:3 mov_text -metadata:s:a:3 language=eng -metadata:s:s:3 language=eng -shortest 3plus1.mp4

Digo "quase funciona" porque adiciona o áudio adicional (eng.mp3) e a legenda (eng.srt), mas o áudio em inglês não aparece no player do QuickTime no Mac OS nem no player de vídeo do aplicativo Documents (da Readdle) para iPhone. Como são esses que eu uso o tempo todo, ainda estou procurando uma solução.

Aqui está uma captura de tela mostrando que o áudio em inglês não está disponível: imagem do player qt

Eu sei que o áudio em inglês está lá porque consigo ouvi-lo usando comandos ffmpeg e o player VLC o exibe tanto no Mac OS quanto no iOS. Infelizmente, acho o player VLC muito inconveniente de usar.

ffmpeg
  • 1 respostas
  • 95 Views
Martin Hope
Glyn Davies
Asked: 2025-04-17 03:32:18 +0800 CST

Gravação de tela usando o codec libx264rgb no Windows 11

  • 7

Estou tentando gravar a tela do meu jogo no Win11 usando o ffmpeg usando o seguinte:

ffmpeg -f gdigrab -framerate 20 -c:v libx264rgb -crf 0 -preset ultrafast -color_range 2 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -show_region 1 C:\Action!\Video\output.mkv

Recebo uma mensagem de erro após as informações do ffmpeg que diz:
Decodificador desconhecido 'libx264rgb'.
Erro ao abrir o arquivo de entrada.
Erro ao abrir os arquivos de entrada: Decodificador não encontrado.

Nas informações parece que o ffmpeg foi compilado com suporte a libx264rgb:

ffmpeg versão N-118007-g2f95bc3cb3-20241204 Copyright (c) 2000-2024 os desenvolvedores do FFmpeg construído com gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27) configuração: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --habilitar-lzma --habilitar-fontconfig --habilitar-libharfbuzz --habilitar-libvorbis --habilitar-opencl --habilitar-libpulse --habilitar-libvmaf --habilitar-libxcb --habilitar-xlib --habilitar-amf --habilitar-libaom --habilitar-libaribb24 --habilitar-avisynth --habilitar-chromaprint --habilitar-libdav1d --habilitar-libdavs2 --habilitar-libdvdread --habilitar-libdvdnav --habilitar-libfdk-aac --habilitar-ffnvcodec --habilitar-cuda-llvm --habilitar-frei0r --habilitar-libgme --habilitar-libkvazaar --habilitar-libaribcaption --habilitar-libass --habilitar-libbluray --habilitar-libjxl --habilitar-libmp3lame --habilitar-libopus --habilitar-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-libzmq --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libvvenc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20241204 libavutil 59. 47.101 / 59. 47.101 libavcodec 61. 26.100 / 61. 26.100 libavformat 61. 9.100 / 61. 9.100 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 6.101 / 10. 6.101 libswscale 8. 12.100 / 8. 12.100 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100

Após executar "ffmpeg -codecs", vejo a seguinte linha:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv libopenh264 h264_cuvid) (encoders: libx264 libx264rgb libopenh264 h264_amf h264_mf h264_nvenc h264_qsv h264_vaapi h264_vulkan)

Se eu usar o seguinte ffmpeg -f gdigrab -framerate 20 -i desktop C:\Action!\Video\output.mkv, funciona bem, no entanto, ao observar a taxa de quadros, ela não chega a 20 fps, então eu queria usar uma opção de codificação mais rápida/eficiente para reduzir a sobrecarga...

Estou testando isso no meu laptop com uma placa de vídeo Intel HD Graphics 620, antes de passar para um desktop com uma placa de vídeo Nvidia.

Muito obrigado antecipadamente
Glyn

------------- editar -------------
A mensagem de erro foi corrigida, graças às informações sobre como alterar a ordem de algumas coisas. No entanto, não está atingindo a marca de 25 fps e perdendo quadros:

Duration: N/A, start: 1745794842.477476, bitrate: 1658890 kb/s Stream #0:0: Video: bmp, bgra, 1920x1080, 1658890 kb/s, 25 fps, 1000k tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (bmp (native) -> h264 (libx264rgb)) Press [q] to stop, [?] for help [libx264rgb @ 000002943760d9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264rgb @ 000002943760d9c0] profile High 4:4:4 Predictive, level 4.0, 4:4:4, 8-bit [libx264rgb @ 000002943760d9c0] 64 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=0 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=cqp mbtree=0 qp=0 Output #0, matroska, to 'C:\Action!\Video\output.mkv': Metadata: encoder : Lavf61.9.100 Stream #0:0: Video: h264 (H264 / 0x34363248), rgb24(pc, gbr/unknown/unknown, progressive), 1920x1080, q=2-31, 25 fps, 1k tbn Metadata: encoder : Lavc61.26.100 libx264rgb Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 372 fps= 24 q=0.0 size= 3072KiB time=00:00:15.20 bitrate=1655.6kbits/s dup=0 drop=7 speed=0.982x

Achei que usar um codificador lib264rgb seria mais eficiente...

Abraços Glyn

ffmpeg
  • 1 respostas
  • 68 Views
Martin Hope
Peter
Asked: 2025-04-12 00:44:50 +0800 CST

Como girar um vídeo no eixo vertical para um trapézio para obter uma aparência 3D com o FFmpeg?

  • 7

Quero sobrepor um vídeo sobre um fundo de estúdio virtual. O vídeo sobreposto deve ser "inclinado" para ter uma aparência 3D virtual. O fundo fica assim:

Trapézio branco sobre fundo cinza

e deve ter o vídeo de sobreposição ajustado na forma branca.

Eu trabalho principalmente com o FFmpeg, então comecei a pesquisar lá e encontrei o v360-Filter com a opção "yawl". Usando isto:

ffmpeg -i .\in.mp4 -vf v360=flat:yaw=10 out.mp4

É o primeiro passo para deixar o vídeo de sobreposição no formato desejado:

gráfico de teste inclinado

Mas não consigo encontrar nenhuma informação sobre como prosseguir a partir daqui, a documentação do v360filtro é bastante esparsa e, no final das contas, o filtro é destinado a um caso de uso diferente, ou seja, converter vídeos em 360 graus.

Alguém sabe como arquivar o efeito desejado? Ou pode me indicar alguma documentação sobre o v360filtro? Ou há algum outro filtro que eu esteja ignorando?

Até mesmo uma solução com qualquer outra ferramenta de linha de comando/biblioteca de programação (OpenCV?) seria útil.

ffmpeg
  • 1 respostas
  • 36 Views
Martin Hope
Att Righ
Asked: 2025-03-31 03:48:49 +0800 CST

Como sei qual parâmetro é o padrão para um filtro ffmpeg?

  • 11

Notei que alguns filtros ffmpeg omitem o nome dos parâmetros para certos parâmetros.

Por exemplo, você pode escrever:

ffplay -f lavfi -i 'color=red'

em vez de usar color=color=red; ou

ffplay -f lavfi -i 'color=white:size=1024x512, drawtext=hello, scale=500x300'

Como posso saber qual parâmetro é o "parâmetro padrão"?

ffmpeg
  • 1 respostas
  • 754 Views
Martin Hope
Pubg Mobile
Asked: 2025-03-29 14:12:49 +0800 CST

Como converter uma sequência SVG em um vídeo 4K de alta escala?

  • 8

Tenho um grande número de arquivos de sequência SVG e carreguei um exemplo aqui:
https://easyupload.io/epuw45

Quero converter esses arquivos SVG em um vídeo 4K de altíssima qualidade. Cada arquivo SVG deve representar um único quadro no vídeo.

Eu tentei usar o FFmpeg com a biblioteca librsvg, mas ele converte cada SVG em um PNG, então transforma o PNG em um vídeo. Esse processo é muito lento, usa muita CPU e resulta em altas gravações em disco, o que não é o ideal.

Eu também tentei mesclar os arquivos SVG em um único SVG animado usando a biblioteca lxml, mas não funcionou como esperado. Todos os arquivos SVG apareceram juntos, um após o outro, no arquivo de saída, o que significa que o SVG anterior não desapareceu antes do próximo aparecer.

Não tenho certeza se mesclar os SVGs em um único SVG animado me permitiria convertê-lo em um arquivo de vídeo com sucesso.

Me deparei com este projeto do GitHub: https://github.com/tomkwok/svgasm , que pode ajudar a mesclar SVGs em um arquivo animado, mas não tenho certeza de como usá-lo.

Existe algum outro método para converter meus arquivos de sequência SVG em um vídeo 4K com qualidade de alta qualidade?
Por exemplo, eu poderia usar ferramentas da Adobe como Adobe Premiere, After Effects ou Animate? Ou existe um script Python que pode fazer isso?

Nota: Não quero converter os SVGs em arquivos PNG porque esse processo demora muito, causa alto uso da CPU e leva a gravações excessivas no disco. Além disso, meus arquivos SVG carregam recursos de imagem de uma pasta interna, então isso precisa ser levado em consideração.

Por fim, o upscaling é extremamente importante para o vídeo de saída.

ffmpeg
  • 2 respostas
  • 175 Views
Martin Hope
Pubg Mobile
Asked: 2025-03-25 18:59:10 +0800 CST

Como converter SWF para vídeo 4K de alta qualidade e escalabilidade?

  • 5

Tenho um arquivo SWF 4K de alta qualidade que quero converter em um vídeo 4K com upscaling de alta qualidade. No entanto, não quero usar o FFmpeg para esse processo.

Tentei as seguintes ferramentas, mas não obtive sucesso:

  • Adobe Animar
  • VídeoProc
  • Freio de mão
  • Conversor de vídeo Movavi
  • Recool Professional SWF para AVI
  • Conversor de Vídeo Apowersoft
  • Reprodutor de mídia VLC
  • Filestar
  • A maioria dos scripts Python do GitHub

Nota: Upscaling é muito importante para mim no vídeo de saída. Especificamente, ao dar zoom em qualquer quadro do vídeo, os pontos devem permanecer claros, sem perda de qualidade ou desfoque.

ffmpeg
  • 1 respostas
  • 87 Views
Martin Hope
Jon Glazer
Asked: 2025-03-20 20:34:56 +0800 CST

Como adicionar uma tag de origem a um vídeo?

  • 5

Existe alguma configuração no FFmpeg que me permita definir a tag de origem de um vídeo para que eu possa acompanhar os vídeos que codifiquei (ou não) no passado? Talvez adicionar texto à tag atual e/ou substituir a tag?

ffmpeg
  • 1 respostas
  • 48 Views
Martin Hope
ComputerUser121212
Asked: 2025-03-19 22:40:26 +0800 CST

O codec HEVC NVENC produz saída entrelaçada a partir de entrada não entrelaçada

  • 5

Tenho um Blu-Ray rip (obtido e copiado legalmente) em h264 mp4, que estou tentando reduzir o tamanho.

Tentei codificá-lo em h265 via FFmpeg e HandBrake, mas o resultado é um vídeo entrelaçado (a fonte não é entrelaçada), o que é muito chato de assistir.

Quais opções devo especificar no FFmpeg para evitar isso?

Até agora usei as opções padrão para o hevc_nvenccodec no FFmpeg e o codec equivalente no HandBrake.

Close-up de um quadro de origem não entrelaçado: close-up não entrelaçado de um quadro

Close-up de um quadro de resultado entrelaçado: close entrelaçado de um quadro

EDITAR:

Saída do arquivo de entrada do FFprobe (único fluxo relevante):

Stream #0:0(eng): Video: h264 (High), yuv420p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn
  Metadata:
    BPS-eng         : 26434120
    DURATION-eng    : 01:58:41.013900000
    NUMBER_OF_FRAMES-eng: 213417
    NUMBER_OF_BYTES-eng: 23529714835
    SOURCE_ID-eng   : 001011
    _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.7 win(x64-release)
    _STATISTICS_WRITING_DATE_UTC-eng: 2024-07-26 11:27:31
    _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
ffmpeg
  • 1 respostas
  • 55 Views
Martin Hope
tvanc
Asked: 2025-03-14 12:59:33 +0800 CST

Os valores de criação de vídeo do iOS não correspondem aos carimbos de data/hora exibidos

  • 6

Os creation_timemetadados em vídeos que eu baixo do iCloud não correspondem aos timestamps que eu vejo no iCloud. Por exemplo, eu tenho um vídeo aqui cujos metadados no meu PC dizem 2025-01-10T21:14:45.000000Z.

Mas no iCloud o registro de data e hora diz Jan 9, 2025 9:30:54 AM:
insira a descrição da imagem aqui

Essa é uma diferença de 35:43:51(hh:mm:ss)

Em um vídeo de aproximadamente duas semanas depois, a diferença é 50:08:56. Em um vídeo de aproximadamente duas semanas antes do original, a diferença é 08:12:10. A diferença parece estar crescendo conforme o tempo passa.

O que está acontecendo aqui? Há outro valor que eu deveria procurar? Estou usando ffprobepara extrair os metadados.

Exemplo de comando:

ffprobe -v quiet -select_streams v:0  -show_entries stream_tags=creation_time -of default=noprint_wrappers=1:nokey=1 IMG_9912.mp4
ffmpeg
  • 1 respostas
  • 28 Views
Martin Hope
anon
Asked: 2025-02-21 23:46:52 +0800 CST

ffmpeg - Como combinar clipes sobrepostos de um único vídeo?

  • 8

Estou tentando usar o ffmpeg para pegar alguns clipes de um vídeo e combiná-los, semelhante a este .

Exceto que os clipes vêm de timestamps que se sobrepõem. Meu comando se parece com isso:

"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -y -i "C:\temp\5min.mp4" ^
-vf "select='between(t,4,6.5)+between(t,5,6)', setpts=N/FRAME_RATE/TB" ^
-af "aselect='between(t,4,6.5)+between(t,5,6)', asetpts=N/SR/TB" "C:\temp\5min-clip.mp4"

O vídeo que sai contém apenas o primeiro clipe. Estou na versão mais recente do ffmpeg.

Como faço isso?

ffmpeg
  • 1 respostas
  • 43 Views

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
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • 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
    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