Merhaba arkadaşlar

bir stream var diyelim microsoft.com ve ben buna ffmpeg -i yaptığımda codeclerini filan ekrana basıyorum. Şimdi öyle bir grep lazım ki o ekrana basılan bilgiler içinde aac var mı yok mu bana gösterecek. Şu komut işe yaramıyor malesef

ffmpeg -i microsoft.com | grep "aac"

ne önerirsiniz?

 

ffmpeg çıktısı text ise yazdığınız grep çalışır. Çıktıda binary içerik varsa grep -a ile deneyin.

Abdurrahman

text çıktı ama adresten sonra şu hatayı veriyor: Invalid data found when processing input

beholderrulez

O hata ffmpeg'in hatasıdır, grep komutunun değil. Burada grep kendisinden önce gelen text üzerinde arama yapar. Doğal olarak sizin komutunuzda grep o verdiği çıktı mesajı içerisinde arama yapıyor.

Abdurrahman

komutu biraz değiştirdim:

find microsoft.com | xargs -r -L 1 ffmpeg -i | grep -F "aac"
find: `microsoft.com: No such file or directory

yani linki bir şekilde find formatına uyarlayabilirsem olacak gibi. Ne dersiniz?

beholderrulez

Ben ffmpeg'in ne yaptığını bilmiyorum. Yani ffmpeg -i link komutuyla nasıl bir çıktı alıyorsunuz, önce bunu görmek lazım. Sonra içerisinden gerekli aramayı yaparsınız. Find komutu ise farklı bir komut, sizin aradığınızla pek ilgisi yok.

Abdurrahman

Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s

şöyle bir çıktısı var. Bunu kontrol etmem lazım Audio:aac kısmı geliyorsa sorun yok. Ses kaybolduğunda bu aac de kayboluyor. Onu kontrol etmem lazım periyodik zamanlarda

beholderrulez

Sizin verdiğiniz komut bu çıktıyı vermiyor işte. Neden vermiyor bunu çözelim önce, sonra bunun içerisinde aac olup olmadığını arayalım. Eğer bu çıktıyı veriyorsa sizin ilk mesajınızda verdiğiniz komut zaten çalışırdı.

Bu komut direkt olarak bu çıktıyı verip işlemi bitiriyor mu, yoksa sürekli olarak çalışır vaziyette güncelleniyor mu? Eğer son söylediğim gibiyse grep komutuna devam etmesi için ilk aşamayı geçmesi yani komutun tamamlanması gerekir.

Abdurrahman

bu çıktıyı ffmpeg -i link deyince alabiliyorum

beholderrulez

root@ca:~# cat test
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s

root@ca:~# cat test | grep aac
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s

Yani çıktı bu olduğu zaman grep işinizi görür.

Ffmpeg komutunu şu şekilde düzeltip deneyin bir de:

ffmpeg -i link 2>&1 | grep aac

Abdurrahman

evet çok teşekkür ederim. Sizin verdiğiniz komut aacli satırı çıkartıyor. Süper oldu bu. Tekrar teşekkürler

beholderrulez
1

mobil görünümden çık