[Audio] فميغ كليب الفاصلة السمعية مع بداية ونهاية الوقت


Answers

فميغ - تريم ملف صوتي دون إعادة ترميز

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

تقليم بدءا من 10 ثانية وتنتهي في 16 ثانية (مجموع الوقت 6 ثوان)

ffmpeg -i input.mp3 -ss 10 -t 6 -acodec copy output.mp3

تقليم من 00: 02: 54.583 إلى نهاية الملف

ffmpeg -i input.mp3 -ss 00:02:54.583 -acodec copy output.mp3

تقليم من 00: 02: 54.583 لمدة 5 دقائق (ويعرف أيضا باسم 300 ثانية)

ffmpeg -i input.mp3 -ss 00:02:54.583 -t 300 -acodec copy output.mp3
Question

أنا أحاول أن كليب MP3 بين نقطتين البداية، مثل بدءا من 10 ثانية وتنتهي في 16 ثانية (الفاصل الزمني من 6 ثوان).

أنا أستخدم هذا الأمر:

ffmpeg -ss 10 -i input.mp3 -t 6 output.mp3

الناتج output.mp3 يحتوي على 6 ثوان التي حددتها تليها 8 أو 9 ثوان من الصوت الفارغ. هل هناك شيء خاطئ مع قيادتي؟

تصحيح:

ffmpeg -ss 10 -t 6 -i input.mp3 output.mp3 يقول -t is not an input option, keeping it for the next output; consider fixing your command line. -t is not an input option, keeping it for the next output; consider fixing your command line. ويعطيني الملف الذي حصل على 8 ثوان من الصوت بدءا من 10S وبعد ذلك بعض 9 أو 10 ثانية من الصمت.

ffmpeg -ss 10 -to 16 -i input.mp3 output.mp3 تنتج ملف الذي هو ضعف طول الأصلي - في الأساس نفس ملف الصوت المتكررة مرة أخرى. \

اختبار الإخراج:

لقد استخدمت كيكتيمي ولها صوت صامت في النهاية. وصف ملف الإخراج في مكتشف يقول مثل 14 ثانية. عند استخدام فلك، فإنه يلعب لمدة 6 ثوان الصحيح ويتوقف، على الرغم من مدتها في متصفح الملفات في فلك يقول 14. بلدي مبلاير لا يعمل بشكل صحيح. كما فعلت معاينة الصوت في الباحث، وأنه يلعب 6 ثوان بشكل صحيح ثم توقف. ولكن شريط طالب الجولة من MP3 لم تصل إلى النهاية. وتقول أيضا 14 ثانية بدلا من 6.

هدفي هو تيار هذا الملف الثاني 6 من خلال واجهة برمجة التطبيقات ريست إلى الواجهة الأمامية. أريد للمستخدم أن يكون قادرا على تحميل هذا الملف بشكل صحيح. من الناحية المثالية فإنه لن يكون البيانات الوصفية غير متناسقة (14 ثانية بدلا من 6).




هذا هو رمز اختبار لزراعة الصوت باستخدام فميغ.

  • بدء نقطة البداية من الصوت.
  • path مسار الصوت الذي تريد اقتصاص.
  • duration الإجمالية من نقطة البداية التي تريد اقتصاصها.
  • outputfile2 مسار إخراج الصوت.

استدعاء هذه الوظيفة باستخدام execFFmpegBinary1(null); :

private void execFFmpegBinary1(final String[] command) {
  outputFile2 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/videoaudiomerger/AudioOutput.mp3");
  String[] cmd = new String[]{"-ss", start, "-i", path, "-t", duration, outputFile2.getPath()};
  try {
    ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {
      @Override
      public void onFailure(String s) {
        System.out.println("on failure----" + s);
      }

      @Override
      public void onSuccess(String s) {
        System.out.println("on success-----" + s);
      }

      @Override
      public void onProgress(String s) {
        // Log.d(TAG, "Started command : ffmpeg "+command);
        System.out.println("Started---" + s);
      }

      @Override
      public void onStart() {
        progress();
        // Log.d(TAG, "Started command : ffmpeg " + command);
        System.out.println("Start----");
      }

      @Override
      public void onFinish() {
        System.out.println("Finish-----");
        progressBar.dismiss();
        Toast.makeText(MainActivity.this, "Audio Cropping Completed", Toast.LENGTH_SHORT).show();
        selectedtrack = outputFile2.getPath();
        // ffmpeg.killRunningProcesses();
      }
    });
  } catch (FFmpegCommandAlreadyRunningException e) {
    // do nothing for now
    System.out.println("exceptio :::" + e.getMessage());
  }
}