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