フォルダ内のすべてのビデオをインポートして.ts
セグメントに変換し、m3u8
プレイリストを作成するコマンドがあります。
その後、それをファイルにリンクする必要があるので、playlist.txt
次のようにします。
cd /var/myfolder && find ./ -name "*.*" -exec ffmpeg -i {} -c:v h264 -crf 1 -flags +cgop -g 30 -hls_time 1 -hls_list_size 0 {}.m3u8 2>&1 > /dev/null \; && ls /var/myfolder/*.m3u8 | sed "s:.*/::" | xargs -i echo file {} > /var/myfolder/playlist.txt && echo done';
最初と2番目のコマンドが機能すると(フォルダのcdとffmpegの変換)、コマンドは&& ls /var/myfolder/*.m3u8 | sed "s:.*/::" | xargs -i echo file {} > /var/myfolder/playlist.txt && echo done';
実行されません。
3番目のコマンドが実行されない理由は理解できません。
答え1
あなたはすることはできませんfind -exec
。
xargs
デフォルトは...です。ただし、すでにディレクトリにecho
あるので、最後の行を大幅に簡略化して削除することができます。cd
xargs
sed
cd /var/myfolder &&
find ./ -name "*.*" -exec ffmpeg -i {} -c:v h264 -crf 1 -flags +cgop -g 30 -hls_time 1 -hls_list_size 0 {}.m3u8 \; 2>&1 > /dev/null &&
printf 'file %s\n' *.m3u8 > /var/myfolder/playlist.txt &&
echo done