הקלטת תשדורת fm וכל שעה עגולה הורדת הקובץ
-
אני מעוניין שהשרת "יאזין" לשידור חי של רדיו FM ו"יקליט" את מה שהוא שומע וכל שעה יוריד קובץ עם ההקלטה של השעה האחרונה לשרת לתיקייה מסודרת.
אין לי מושג איך להתחיל לעבוד על זה..
חשבתי מכיוון שיש להם אתר אינטרנטי (לכל רדיו יש...) שגם בו ניתן לשמוע שידור חי אולי לנסות להקליט איכשהוא את האתר הזה וכל שעה לעצור את ההקלטה לשמור את הקובץ ולהמשיך להקליט, אבל לא בדיוק הבנתי איך לעבוד עם זה.
אשמח לכל עזרה בנושא. -
@צבי-ש יש באתר כתובת שהיא בעצם "סרט" אין סופי (stream), למשל https://media2.93fm.co.il/live-new של רדיו קול חי.
אתה צריך לשמור בקובץ אבל לעצור כל שעה. אני לא יודע איך מבצעים את זה בPHP (את סגירת הקובץ כל שעה והתחלת חדש בלי לאבד כלום), אבל בffmpeg אני רואה פה https://stackoverflow.com/a/58910849/1271037 שזה ממש קל:ffmpeg -i https://media2.93fm.co.il/live-new -c copy -f segment -segment_time 3600 -segment_wrap 2 -reset_timestamps 1 out%02d.mkv -y
-
@צבי-ש אמר בהקלטת תשדורת fm וכל שעה עגולה הורדת הקובץ:
@dovid אמר בהקלטת תשדורת fm וכל שעה עגולה הורדת הקובץ:
אני לא יודע איך מבצעים את זה בPHP
פייתון גם טוב.
כתיבת זרם לקובץ:
https://stackoverflow.com/a/6474839/1271037התחלת קובץ חדש כל פרק זמן:
https://stackoverflow.com/a/43752005/1271037 -
@dovid אמר בהקלטת תשדורת fm וכל שעה עגולה הורדת הקובץ:
כתיבת זרם לקובץ:
https://stackoverflow.com/a/6474839/1271037import socket HOST = 'https://media2.93fm.co.il/live-new' # The remote host PORT = 80 # The same port as used by the server s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) data = s.recv(1024) s.close() with open('https://media2.93fm.co.il/live-new','w') as f: f.write(data)
זה בעצם כותב כמה זמן?
כלומר כל זמן שהוא פתוח הוא כותב?
איך זה עובד? -
@צבי-ש האמת שאני לא יודע, לא קראתי מקודם את הקוד וכעת שאני קורא זה נראה שזה לא מטפל בזרם אלא במידע.
במונחים שאני מכיר בC#, אמור להיות לולאה שבודקת אם הסתיים הזרם ואם לא כותבת עוד ועוד מידע, וזה כמובן אינסופי אם אין תנאי כל שהוא והמקור לא מפסיק.
כנראה הלינק הזה https://stackoverflow.com/a/24136958/1271037 יותר נכון. -
@dovid אמר בהקלטת תשדורת fm וכל שעה עגולה הורדת הקובץ:
@צבי-ש האמת שאני לא יודע, לא קראתי מקודם את הקוד וכעת שאני קורא זה נראה שזה לא מטפל בזרם אלא במידע.
במונחים שאני מכיר בC#, אמור להיות לולאה שבודקת אם הסתיים הזרם ואם לא כותבת עוד ועוד מידע, וזה כמובן אינסופי אם אין תנאי כל שהוא והמקור לא מפסיק.
כנראה הלינק הזה https://stackoverflow.com/a/24136958/1271037 יותר נכון.זה נראה לי הפוך, לקחת מהמחשב ולשדר
אני צריך מהשידור לקחת למחשב