web-dev-qa-db-ja.com

FFMpeg concat demuxer unsafe file name

私の.netアプリケーション内でffmpegを使用して、同じエンコーディングと幅と高さの寸法を持ついくつかの短いビデオをマージ(連結)しています。ドキュメントが言うように私はtxtファイルを作成しました、そしてこれは私のtxtです:

concatTextDirectoryは私の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'

そして、これはffmpegの引数部分です:

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

結果はありません。以下はレポートです

ffmpegは2016-04-25の19:02:30に開始
"ffmpeg-20160425-190230.log"コマンドライン:ffmpeg.exe -f concat -i
"C:\ Users\mtst\Desktop\Clips\keep\keep.txt" -c copy
"C:\ Users\mtst\Desktop\Clips\keep\keep.mp4" -y -report ffmpeg
バージョンN-79546-g13406b6 Copyright(c)2000-2016 the FFmpeg
gcc 5.3.0(GCC)構成でビルドされた開発者:--enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable -frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable -libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable- libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx- enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55 。22.100/55. 22.100 libavcodec 57. 35.100/57. 35.100 libavformat 57. 34.102/57. 34.102 libavdevice 5 7. 0.101/57. 0.101 libavfilter 6. 44.100/6. 44.100 libswscale 4. 1.100/4. 1.100 libswresample 2. 0.101/2. 0.101 libpostproc 54. 0.100/54. 0.100コマンドラインを分割します。オプション '-f'を読み込んでいます...オプションとして一致
'f'(強制フォーマット)、引数 'concat'。オプション '-i'を読み込んでいます...
引数付きの入力ファイルとして一致
'C:\ Users\mtst\Desktop\Clips\keep\keep.txt'。オプション '-c'を読み取っています...
引数 'copy'のオプション 'c'(コーデック名)と一致しました。読書
オプション 'C:\ Users\mtst\Desktop\Clips\keep\keep.mp4' ...と一致
出力ファイル。オプション '-y'を読み取っています...引数 '1'のオプション 'y'(出力ファイルを上書き)と一致しました。オプション '-report'を読み取っています...引数 '1'のオプション 'report'(レポートを生成)と一致しました。完成した
コマンドラインを分割しています。オプションのグループの解析:グローバル。
引数1でオプションy(出力ファイルを上書き)を適用します
引数1のオプションレポート(レポートを生成)
オプションのグループを解析しました。オプションのグループの解析:入力ファイル
C:\ Users\mtst\Desktop\Clips\keep\keep.txt。オプションf(force
format)引数concat付き。オプションのグループを正常に解析しました。入力ファイルを開く:C:\ Users\mtst\Desktop\Clips\keep\keep.txt。
[file @ 00000000027d3ee0]デフォルトのホワイトリスト「file、crypto」を設定しています
[concat @ 00000000027d3800]安全でないファイル名
'C:\ Users\mtst\Desktop\Clips\keep\a1.mp4' [AVIOContext @
0000000000957ca0]統計:読み取り238バイト、シーク0
C:\ Users\mtst\Desktop\Clips\keep\keep.txt:操作は許可されていません

最後に見ることができるようにそれは言う:

安全でないファイル名 'C:\ Users\mtst\Desktop\Clips\keep\a1.mp4'

...および操作は許可されていません。追加のバックスラッシュを追加するか、バックスラッシュをスラッシュに変更するか、ダブルコロンをエスケープし、concatTextDirectoryの先頭または末尾に二重引用符または一重引用符を追加しました...これらの変更のいずれも結果をもたらしませんでした。

15
Eftekhari

どちらかを実行

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

または、keep.txtで絶対(フル)パスを使用しないでください

27
Gyan