ffmpeg menulis informasi itu ke stderr
, bukan stdout
. Coba ini:
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
Perhatikan pengalihan stderr
ke stdout
:2>&1
EDIT:
sed
Anda pernyataan juga tidak berfungsi. Coba ini:
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
Anda dapat menggunakan ffprobe
:
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
Ini akan menampilkan durasi dalam hitungan detik, seperti:
154.12
Menambahkan -sexagesimal
opsi akan menampilkan durasi sebagai jam:menit:detik.mikrodetik :
00:02:34.12