שְׁאֵלָה:
כיצד אוכל להשתמש ב- ffmpeg להמרת קבצים נשמעים
Harry McGovern
2016-01-10 18:29:39 UTC
view on stackexchange narkive permalink

אני מריץ את ffmpeg v2.8.1 מ- Homebrew, ומנסה להמיר קבצי נשמע אבל יש איזה טריק שחסר לי.

פקודה זו מייצרת פלט שגיאה זה.

  ffmpeg -activation_bytes 1CEB00DA -i Volume1.aax -vn -c: עותק פלט.mp4 [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0x7fc9a4010600] [aax] בדיקת קובץ = = d72f1f04e3c73d0bc68e742db1bc69b58dc3a500 [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0x7fc9a4010600] [aax] חוסר התאמה בבדיקות! [mov, mp4, m4a, 3gp9, 3a2 קלט  

אני יודע שהקובץ בסדר, כי הוא מנגן ב- iTunes. יש לי גם את תמונת הקובץ / עטיפת הכיסוי,

מה- ffmpeg מסמכים, קראתי קבצי AAX נשמעים הם קבצי M4B מוצפנים, וניתן לפענח אותם על ידי ציון סוד הפעלה של 4 בתים.

אני מניח - כנראה באופן שגוי - שזו נתון הוא בסדר. אם לא, איך מוצאים את הסוד הזה.

ראה גם https://github.com/KrumpetPirate/AAXtoMP3
שְׁלוֹשָׁה תשובות:
nisetama
2016-06-23 23:10:39 UTC
view on stackexchange narkive permalink

ראשית הפעל את הפקודות הבאות:

  לחלוט להתקין chromedriver ffmpegsudo easy_install pippip להתקין סלני בקשות git clone https://github.com/inAudible-NG/ activable-auditorcd-activatored -i '' 's, chromedriver_path = "./chromedriver",chromedriver_path =" / usr / local / bin / chromedriver ",' audible-activator.py./audible-activator.py 

לאחר מכן הזן את שם המשתמש והסיסמה הניתנים שלך והמתן זמן מה עד שמפתח ההפעלה של שמונה התווים יודפס.

אם אינך מריץ את sed פקודה שמשנה את הערך של המשתנה chromedriver_path , ./audible-activator.py מביאה לשגיאה כמו 'chromedriver' ההפעלה צריכה להיות ב- PATH גם אם chromedriver נמצא בנתיב או בספריה audible-activator . אם sed שלך הוא GNU sed , החלף את sed -i '' ב- sed -i .

לאחר מכן הפעל פקודה כזו:

  ffmpeg -activation_bytes youractivationkey -i input.aax -c copy output.m4b  

(ערכתי את הפקודה לעיל בהתבסס על הערות LiWang ו- marcus erronius כדי להחליף את output.m4a; mv output.m4 {a, b} בפלט . m4b ולהחליף את -vn -c: v copy ב- -c copy .)

אם תנסה להשתמש ב פקודה ffmpeg למעלה עם קובץ aa במקום קובץ aax , זה גורם לשגיאה כמו אפשרות ההפעלה_בייטים לא נמצאו . כדי להוריד ספר מ- Audible בשם aax במקום aa , בחר "משופר" מהתפריט הנפתח "איכות שמע" בתצוגה להורדת ספר.

קבצי

aax מוצפנים mp4 / m4a / m4b קבצים כך ש- ffmpeg הפקודה שלעיל אינה מקודדת מחדש את האודיו והיא שומרת על מטא נתונים כגון פרקים. mp4 , m4a ו- m4b הם סיומות חלופיות לשם קבצים עבור פורמט המיכל MPEG-4 Part 14. התוספות m4a ו- m4b הוצגו במקור על ידי אפל. הבדל אחד בין התוספים m4a ו- m4b הוא שהאפשרות לזכור את מיקום ההפעלה הקודם ב- iTunes מופעלת כברירת מחדל עבור קבצים עם m4b סיומת אך לא לקבצים עם סיומת m4a . iTunes מציג קבצים עם סיומת m4b כבר מתחת לספרי שמע כברירת מחדל.

בגירסאות הישנות של iTunes לא הייתה תיבת הסימון כדי לאפשר לזכור את מיקום ההפעלה הקודם, אלא לזכור את מיקום ההפעלה הקודם. תמיד הופעל לקבצים עם סיומת m4b , כך שגם ויקיפדיה עדיין קובעת באופן שגוי כי "קובץ שמע .m4a אינו יכול" לסמן "(זכור את נקודת ההאזנה האחרונה), ואילו קבצי סיומת .m4b יכולים. " (למרות שאני לא יודע אם יש עדיין נגני מדיה אחרים שמתנהגים כמו גרסאות ישנות של iTunes מבחינה זו.)

UTI עבור התוסף m4b הוא com.apple.protected-mpeg-4-audio ו- Finder מציג את סוג כל הקבצים m4b כ"שמע MPEG-4 מוגן "למרות שכל הקבצים עם m4b אין לתוסף הגנה מפני העתקה.

אני משתמש בקבצי '.aax' ומקבל את השגיאה: 'אפשרות לא מזוהה' ההפעלה_ביטים '.רעיונות כלשהם?האם Audible שינתה את הפורמט שלהם בשנה האחרונה?
איזו סיבה להמיר ל '* .m4a' ואז לשנות את השם '* .m4b'?למה לא פשוט לעשות: `ffmpeg -activation_bytes youractivationkey -i input.aax -vn -c: output copy.m4b`?
@LiWang זה גרם לשגיאה בגירסאות ישנות יותר של ffmpeg, אך נראה שכך כבר לא המקרה.
@user4669748 אני רואה.תודה על האישור!
הייתי צריך להשתמש בפקודה זו כדי לגרום לפייתון לעבוד, אבל אחרי זה הלך מושלם! ln -sf /usr/bin/python2.7 / usr / local / bin / python2
הערה: אם ברצונך להעתיק את תמונת האלבום (כריכת הספר) לקובץ שהתקבל, החלף את '-vn' ב- '-c: v copy'.ffmpeg רואה בעיצוב הכיסוי מסלול וידאו, והוא לא יגדיל את גודל הקובץ בצורה ניכרת.
תשובה זו כבר לא עובדת ... צריך לעדכן אותה לשנת 2020.
Stark
2016-01-13 11:36:03 UTC
view on stackexchange narkive permalink

זה יביא לך את סוד ההפעלה שלך:

https://github.com/inAudible-NG/audible-activator

השתמשתי ב- [סקריפט זה] (https://github.com/KrumpetPirate/AAXtoMP3) כדי לבצע את ההמרה בפועל.ראוי גם לציין שעליך להתקין 'סלניום' ו'בקשות 'באמצעות' pip 'או' easy_install 'וגם להוריד ולהוציא chromedriver לספריית' אקטיב-אקטיב 'כדי שהוא יעבוד.מידע זה מסופק ב- README של 'אקטיב-אקטיב' אך כדאי לדעת מראש :)
תודה, @intuited;התסריט הזה הוא זהב.היה צורך בשינויים קלים בכדי להשתמש ב- GNU grep ('ggrep' המותקן עם 'brew install grep') ב- macos, אך עשה עבודה נהדרת לאחר מכן.
devopsmikey
2016-12-04 08:09:37 UTC
view on stackexchange narkive permalink

ניסיתי את התשובה של user4669748, ונתקלתי בכמה דברים שכדאי לשים לב אליהם, וגיליתי תיקון שגרם לדברים לעבוד בשבילי:

  1. audible-activator.py דורש פייתון 2.7; זה נכשל עם Python 3.
  2. לאחר הפעלתו, חלון Chrome צץ על המסך ומתחיל לראות פעילות של ממשק משתמש, וכניסה מוצלחת ל- Audible.
  3. זמן קצר לאחר הכניסה, נראה שפעילות הדפדפן תלויה, כאשר ממתין ל- px.owneriq.net כל הזמן מוצג בשורת המצב התחתונה.
  4. לאחר חמש דקות היה לי פסק זמן:

      [*] מזהה הנגן הוא 2jmj7l5rSw0yVb / vlWAYkK / YBwk =
    Traceback (רוב השיחות האחרונות האחרונות):
      קובץ "./audible-activator.py", שורה 151, ב- <module>
        fetch_activation_bytes (שם משתמש, סיסמה, אפשרויות)
      הקובץ "./audible-activator.py", שורה 74, ב- fetch_activation_bytes
        search_box.submit ()
      הקובץ "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", שורה 88, בהגשה
        self._execute (Command.SUBMIT_ELEMENT)
      הקובץ "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", שורה 494, ב _ execute
        להחזיר self._parent.execute (פקודה, params)
      קובץ "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", שורה 236, בביצוע
        self.error_handler.check_response (תגובה)
      הקובץ "/Bibliotek/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", שורה 192, בתגובה check_
        העלה את החריג class (הודעה, מסך, stacktrace)
    selenium.common.exceptions.TimeoutException: הודעה: פסק זמן: לא יכול לקבוע את מצב הטעינה
    מפסק זמן קצוב: זמן קצוב לקבלת הודעה מעבד: -0.222
      (פרטי מושב: כרום = 54.0.2840.98)
      (מידע על מנהל התקן: chromedriver = 2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1), פלטפורמה = Mac OS X 10.12.0 x86_64)
    

בזה הייתי תקוע.עם זאת, מתוך מחשבה ש px.owneriq.net הוא אתר כלשהו למודעות או למעקב, ניסיתי "להשבית אותו" באופן זמני על ידי הוספה ל- / etc / hosts עם לא חוקיכתובת IP, למשל

  0.0.0.0 px.owneriq.net
 

(זו הייתה טקטיקה שהציע חבר להפסיק מודעות בדפדפן.)

לאחר תוספת זו ל- / etc / hosts , הפעל מחדש את התוכנית.הוא הסתיים עד 30 שניות.

מפתח הפעלה של 4 בתים הודפס על המסך ועבד בצורה מושלמת עם ffmpeg כמתואר בתשובת user4669748.

ואז החזרתי את / etc / hosts לתוכן המקורי.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...