سؤال

السؤال الأصلي

أريد أن أكون قادرة على توليد جديدة (كامل صالح) MP3 ملف من القائمة ملف MP3 إلى أن تستخدم المعاينة-محاولة-من قبل-أنت-شراء نمط.الملف الجديد يجب أن تحتوي فقط على الأولى n ثانية من المسار.

الآن, وأنا أعلم أنني يمكن أن مجرد "ختم ستريم" في n ثانية (حساب من البت و رأس الحجم) عند تسليم الملف, ولكن هذا هو قليلا القذرة الحقيقي بيتا على VBR المسار.أود أن تكون قادرة على توليد السليم ملف MP3.

أي شخص أي أفكار ؟

إجابات

سواء mp3split و ffmpeg كلاهما حلول جيدة.اخترت ffmpeg كما يتم تثبيتها عادة على خوادم لينكس و هو أيضا متاحة بسهولة على ويندوز.هنا بعض أكثر من جيدة معلمات سطر الأوامر من أجل توليد معاينات مع ffmpeg

  • -t <seconds> ختم بعد عدد محدد من الثواني
  • -y القوة ملف الكتابة
  • -ab <bitrate> تعيين معدل البت مثلا -ab 96k
  • -ar <rate Hz> تعيين معدل أخذ العينات مثلا -ar 22050 بالنسبة 22.05 كيلو هرتز
  • -map_meta_data <outfile>:<infile> نسخ المسار البيانات الوصفية من infile إلى outfile

بدلا من وضع -ab -ar, يمكنك نسخ المسار الأصلي الإعدادات كما تيم فارلي يقترح:

  • -acodec copy
هل كانت مفيدة؟

المحلول

وأوصى أيضا ffmpeg, ولكن سطر الأوامر الذي اقترحه جون بوكير قد الآثار الجانبية غير المقصودة:عليه إعادة ترميز الملف الافتراضي معدل البت (وهو 64 kb/s في النسخة التي لدي هنا على الأقل).هذا قد يعطي الزبائن انطباع زائف من جودة ملفات الصوت, كما أنه يأخذ وقتا أطول للقيام به.

هنا سطر الأوامر التي سوف شريحة إلى 30 ثانية دون الشفرة:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

فإن acodec التبديل يقول ffmpeg استخدام خاص "نسخ" الترميز الذي لا فيرت.هو بسرعة البرق.

ملاحظة:الأمر تم تحديث على أساس تعليق من Oben Sonne

نصائح أخرى

إذا كنت ترغب في إزالة أول 30 ثانية (و الحفاظ على ما تبقى) ثم استخدام هذا:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3

محاولة:

ffmpeg -t 30 -i inputfile.mp3 outputfile.mp3

يمكنك استخدام mp3cut:

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0

إنه في أوبونتو الريبو ، لذلك فقط: sudo apt-get install cutmp3.

هذا الأمر أيضا يعمل تماما.أنا اقتصاص بلدي ملفات الموسيقى من 20 إلى 40 ثانية.

-y :القوة ملف الإخراج إلى الكتابة.

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3

قد ترغب في محاولة Mp3Splt.

كنت استخدمه من قبل في C# خدمة ببساطة ملفوفة mp3splt.exe win32 العملية.أفترض شيئا مماثلا يمكن القيام به في لينكس/PHP السيناريو.

أنا لم تستخدم لهذا الغرض محددة ، ولكن أراهن ffmpeg يمكن أن تفعل ذلك.

لدي خطأ أثناء القيام بنفس

Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters     ?): Invalid argumentStream mapping:

الإصلاح بالنسبة لي:

ffmpeg -ss 00:02:43.00 -t 00:00:10 -i input.mp3 -codec:a libmp3lame out.mp3
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top