FFMpeg concat demuxer安全でないファイル名


14

.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
version N-79546-g13406b6 Copyright(c)2000-2016 the 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 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100コマンドラインの分割。読み取りオプション '-f' ...オプションとして一致
引数「concat」を持つ「f」(強制フォーマット)。読み取りオプション「-i」...
入力ファイルとして引数
「C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt」と一致します。読み取りオプション '-c' ...
オプション 'c'(コーデック名)と引数 'copy'で一致。読み取り
オプション 'C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4' ...
出力ファイルとして一致しました。オプション '-y'の読み取り...オプション 'y'(出力ファイルの上書き)と引数 '1'で一致。読み取りオプション '-report' ...オプション 'report'(レポートを生成)として引数 '1'と一致します。
コマンドラインの分割が完了しました。オプションのグループの解析:global
引数1でオプションy(出力ファイルを上書きする)を適用します。

オプションのグループを解析しました。オプションのグループの解析:入力ファイル
C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt。
引数concatでオプションf(強制フォーマット)を適用します。オプションのグループを正常に解析しました。入力ファイルを開く:C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt。
[ファイル@ 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の先頭または末尾に二重引用符または単一引用符を追加しようとしました...これらの変更はいずれも結果を出しませんでした。

回答:


26

実行する

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


安全でないのはなぜですか?ドキュメントの例は絶対パスを示しているので、それは問題ではないと思います。
グスタボロドリゲス

1
ffmpeg.org/pipermail/ffmpeg-devel/2013-February/138400.html –絶対パスを安全でないものとして扱います。しかし、その論理についてはわかりません!
jamadagni

また、ドキュメントに基づいた絶対パスであると考えられていましたが、明らかにそうではありません。ファイル名だけにしたので、うまく機能しました。
マイケルトンネル

相対パス名を使用する場合は+1。すべての例が完全に表示されます。
pkamb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.