FFMpeg concat demuxer nama file tidak aman


14

Saya menggunakan ffmpeg di dalam aplikasi .net saya untuk menggabungkan (menyatukan) beberapa video pendek dengan pengodean yang sama dan dimensi lebar dan tinggi. Saya telah membuat file txt seperti yang dikatakan dokumentasi dan ini adalah txt saya:

concatTextDirectory adalah direktori file txt saya.

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'

Dan ini adalah bagian argumen ffmpeg:

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

tetapi tidak ada hasil dan di bawah ini adalah laporannya

ffmpeg dimulai pada 2016-04-25 pada 19:02:30 Laporan ditulis ke
"ffmpeg-20160425-190230.log" Baris perintah: ffmpeg.exe -f concat -i
"C: \ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt "-c copy
" C: \ Users \ mtst \ Desktop \ Klip \ keep \ keep.mp4 "-y-laporkan
versi ffmpeg N-79546-g13406b6 Hak cipta (c) 2000-2016 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 libwcontoh 2.101 lib1. 54. 0.100 / 54. 0.100 Membagi baris perintah. Opsi membaca '-f' ... cocok sebagai opsi
'f' (format paksa) dengan argumen 'concat'. Opsi bacaan '-i' ...
cocok sebagai file input dengan argumen
'C: \ Users \ mtst \ Desktop \ Klip \ keep \ keep.txt'. Opsi bacaan '-c' ...
cocok dengan opsi 'c' (nama codec) dengan argumen 'salin'.
Opsi bacaan 'C: \ Users \ mtst \ Desktop \ Klip \ keep \ keep.mp4' ... cocok sebagai
file keluaran. Opsi bacaan '-y' ... cocok dengan opsi 'y' (menimpa file keluaran) dengan argumen '1'. Opsi bacaan '-laporan' ... cocok dengan opsi 'laporkan' (menghasilkan laporan) dengan argumen '1'. Selesai
membelah baris perintah. Parsing sekelompok opsi: global.
Menerapkan opsi y (menimpa file keluaran) dengan argumen 1.

parsing sekelompok opsi. Parsing sekelompok opsi: input file
C: \ Users \ mtst \ Desktop \ Klip \ keep \ keep.txt. Menerapkan opsi f (
format paksa ) dengan argumen concat. Berhasil menguraikan sekelompok opsi. Membuka file input: C: \ Users \ mtst \ Desktop \ Klip \ keep \ keep.txt.
[file @ 00000000027d3ee0] Mengatur file daftar putih default ', crypto'
[concat @ 00000000027d3800] Nama file tidak aman
'C: \ Users \ mtst \ Desktop \ Klip \ keep \ a1.mp4' [AVIOContext @
000000000095957ca0] Statistik: 238 bytes dibaca, 0 cari
C: \ Users \ mtst \ Desktop \ Klip \ keep \ keep.txt: Operasi tidak diizinkan

seperti yang Anda lihat di bagian akhir tertulis:

Nama file tidak aman 'C: \ Users \ mtst \ Desktop \ Klip \ keep \ a1.mp4'

... dan Operasi tidak diizinkan. Saya telah mencoba menambahkan garis miring terbalik ekstra atau mengubah garis miring terbalik untuk meneruskan garis miring atau keluar dari titik dua, menambahkan tanda kutip ganda atau tanda kutip tunggal pada awal atau akhir concatTextDirectory ... tidak ada perubahan ini yang membuahkan hasil.

Jawaban:


26

Baik lari

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

Atau jangan gunakan jalur absolut (penuh) di keep.txt


Apa yang tidak aman dan mengapa? Contoh dalam dokumentasi menunjukkan jalur absolut, jadi saya pikir bukan itu masalahnya.
Gustavo Rodrigues

1
ffmpeg.org/pipermail/ffmpeg-devel/2013-Februari/138400.html - menyebabkan jalur absolut diperlakukan sebagai tidak aman. Tapi tidak yakin dengan logika itu!
jamadagni

Saya juga berpikir itu seharusnya jalur absolut berdasarkan dokumen tetapi ternyata itu tidak benar. Saya membuatnya hanya nama file dan itu bekerja dengan baik.
Michael Tunnell

+1 untuk menggunakan nama jalur relatif. Semua contoh menunjukkan penuh.
pkamb
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.