FFMpeg concat desmuxer nome de arquivo não seguro


14

Estou usando o ffmpeg dentro do meu aplicativo .net para mesclar (concatenar) alguns vídeos curtos com as mesmas dimensões de codificação e largura e altura. Eu criei um arquivo txt como a documentação diz e este é o meu txt:

concatTextDirectory é o diretório do meu arquivo txt.

file 'C:\Users\mtst\Desktop\Clips\keep\a1.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a2.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a3.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a4.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a5.mp4'

E esta é a parte do argumento ffmpeg:

ffmpeg.StartInfo.Arguments = "/c ffmpeg.exe -f concat -i " + concatTextDirectory + " -c copy " + videoOut + " -y -report";

mas não tem resultado e abaixo está o relatório

ffmpeg iniciado em 25/04/2016 às 19:02:30 Relatório gravado em
"ffmpeg-20160425-190230.log" Linha de comando: ffmpeg.exe -f concat -i
"C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt "-c copy
" C: \ Usuários \ mtst \ Desktop \ Clipes \ keep \ keep.mp4 "-y -reporte o ffmpeg
versão N-79546-g13406b6 Copyright (c) 2000-2016 o FFmpeg
22.100 libavcodec 57. 35.100 / 57. 35.100 libavformat 57. 34.102 / 57. 34.102 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswesample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Dividindo a linha de comando. A opção de leitura '-f' ... corresponde à opção
'f' (formato de força) com o argumento 'concat'. A opção de leitura '-i' ...
corresponde ao arquivo de entrada com o argumento
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt'. A opção de leitura '-c' ...
corresponde à opção 'c' (nome do codec) com o argumento 'copy'. A
opção de leitura 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4' ... corresponde ao
arquivo de saída. A opção de leitura '-y' ... corresponde à opção 'y' (sobrescreve os arquivos de saída) com o argumento '1'. A opção de leitura '-report' ... corresponde à opção 'report' (gerar um relatório) com o argumento '1'. Terminou a
divisão da linha de comando. Analisando um grupo de opções: global.
Aplicando a opção y (sobrescrever arquivos de saída) com o argumento 1.

analisou um grupo de opções. Analisando um grupo de opções: arquivo de entrada
C: \ Usuários \ mtst \ Desktop \ Clips \ keep \ keep.txt. Aplicando a opção f (forçar
formato) com argumento concat. Analisado com sucesso um grupo de opções. Abrindo um arquivo de entrada: C: \ Usuários \ mtst \ Desktop \ Clips \ keep \ keep.txt.
[file @ 00000000027d3ee0] Definindo a lista de permissões padrão 'file, crypto'
[concat @ 00000000027d3800] Nome de arquivo não seguro
'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4' [AVIOContext @
0000000000957ca0] Estatísticas: 238 bytes lidos, 0 procura
C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt: operação não permitida

como você pode ver no final, ele diz:

Nome de arquivo não seguro 'C: \ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4'

... e Operação não permitida. Tentei adicionar barras invertidas extras ou alterar barras invertidas para encaminhar barras ou escapar dois pontos, adicionando aspas duplas ou aspas simples no início ou no final do concatTextDirectory ... nenhuma dessas alterações resultou.

Respostas:


26

Ou corra

ffmpeg.exe -f concat -safe 0 -i
"C:\Users\mtst\Desktop\Clips\keep\keep.txt" -c copy
"C:\Users\mtst\Desktop\Clips\keep\keep.mp4

Ou não use caminhos absolutos (completos) em keep.txt


O que não é seguro e por quê? O exemplo na documentação mostra caminhos absolutos, então acho que esse não é o problema.
Gustavo Rodrigues

1
ffmpeg.org/pipermail/ffmpeg-devel/2013-February/138400.html - faz com que caminhos absolutos sejam tratados como inseguros. Não tenho certeza sobre a lógica disso!
Jamadagni

Eu também pensei que era para ser caminhos absolutos baseados em documentos, mas aparentemente isso não está certo. Eu criei apenas nomes de arquivos e funcionou muito bem.
Michael Tunnell

+1 para usar nomes de caminhos relativos. Todos os exemplos mostram completo.
pkamb
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.