GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengekstrak waktu durasi dari keluaran ffmpeg?

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

Linux
  1. Cara Memutar Video Menggunakan FFMpeg Dari Commandline

  2. Bagaimana Cara Mengekstrak Log Antara Dua Cap Waktu?

  3. Bagaimana Cara Membuat `date` Menghasilkan Waktu Dari Zona Waktu yang Berbeda?

  1. Bagaimana Mencegah `ls` Dari Menyortir Output?

  2. Bagaimana Cara Membaca Satu Pesan Sekaligus Dari /var/mail?

  3. Bagaimana cara mengarahkan output dari perintah waktu ke file di Linux?

  1. Bagaimana cara menyalurkan output dari grep ke cp?

  2. Bagaimana cara mengekstrak teks dengan OCR dari PDF di Linux?

  3. Bagaimana cara mengurutkan keluaran ps berdasarkan waktu mulai proses?