H264 ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে কীভাবে আমি এমএমএস ফাইল (AVCHD) কে এমপি 4 এফএফপিপি রূপান্তর করতে পারি?


20

দ্রষ্টব্য: আমি অল্প সময়ের আগে স্ট্যাকওভারফ্লোতে একই প্রশ্ন পোস্ট করেছি , যখন আমি এই কম্যুনিটিটি এখনও পাইনি। প্রশ্নটি এই সম্প্রদায়ের পক্ষে আরও উপযুক্ত হওয়ায় আমি এটি পুনরায় পোস্ট করছি।

1. আমি কি চেষ্টা করেছি

আমার কিছু .MTS (AVCHD ফর্ম্যাট) ফাইলগুলি আমার AVCHD ক্যামেরায় পুনরুদ্ধার করেছে । এর স্পেসিফিকেশনটি নীচে দেখানো হয়েছে:

$ ffprobe 140612_Canon-00000.MTS 
ffprobe version 2.2.1 Copyright (c) 2007-2014 the FFmpeg developers
(snip)
Input #0, mpegts, from '140612_Canon-00000.MTS':
  Duration: 00:48:58.40, start: 0.800300, bitrate: 5563 kb/s
  Program 1 
    Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), 
      yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 
      29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 
      stereo, fltp, 256 kb/s

ফ্রেমরেট / টাইমবেজের অংশটি মনোযোগ দিন: 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc

এখন আমি এই ফাইলটিকে এমপি 4 ফাইলে রূপান্তর করতে চাই , অন্যদিকে H264 ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে, এর অডিও স্ট্রিমটি এএসি তে ট্রান্সকোড করে । সুতরাং আমি নিম্নলিখিত আদেশটি চেষ্টা করেছিলাম:

ffmpeg -i 140612_Canon-00000.MTS -t 60 -y -vcodec copy -acodec libfaac -ab 128k 140612_Canon-00001.MTS.mp4

2. ফলাফল

এবং আউটপুট ফাইলের স্পেসিফিকেশন নীচে দেখানো হয়েছে:

$ ffprobe 140612_Canon-00000.MTS.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '140612_Canon-00000.MTS.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.33.100

  Duration: 00:01:00.04, start: 0.021333, bitrate: 4590 kb/s

    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 
        1440x1080 [SAR 4:3 DAR 16:9], 4448 kb/s, 
        59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler

    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 
        48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

ফ্রেমরেট / টাইমবেজের অংশটি দেখুন: 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc । যদিও ffmpeg সবেমাত্র ভিডিও স্ট্রিমটি অনুলিপি করেছে, ফ্রেমরেট এবং টাইমবেস দ্বিগুণ মানতে পরিবর্তন করা হয়েছে

সুতরাং, আমি যখন কুইকটাইম প্লেয়ার বা ভিএলসি প্লেয়ার দিয়ে আউটপুট ফাইলটি খুলি এবং প্লেব্যাক করি তখন অডিওতে কোনও সমস্যা হয় না, তবে ভিডিও স্ট্রিমটি সঠিকভাবে প্লে হয় না। ভিডিওটি তার ফ্রেমটি সামনে এবং পিছনে চুপি চুপি বারবার বলার সাথে ফিরে প্লে করা হয়।

3. প্রশ্ন

  1. H264 ভিডিও স্ট্রিমটি সঠিকভাবে পুনরায় এনকোডিং না করে কীভাবে আমি এমএমএস ফাইল (AVCHD) কে fmpmpeg দ্বারা .mp4 রূপান্তর করতে পারি ?
  2. আমি যখন ধারকটিffmpeg এবং এর -vcodec copyস্যুইচটি রূপান্তর করি তখন কীভাবে আমি আসল ফ্রেমরেট / টাইমবেস মানগুলি (fps / tbr / tbn / tbc) রাখতে পারি ।
  3. ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে কীভাবে আমি ffmpeg এর কমান্ড লাইন বিকল্পগুলি দিয়ে ফ্রেমরেট / টাইমবেস মান (fps / tbr / tbn / tbc) সেট করতে পারি ।

কোন ধারনা?


4. -r 29.97বিকল্প যুক্ত করা

প্রফেসর স্পার্কলস আমাকে যুক্ত করার পরামর্শ দিয়েছিলেন -r 29.97। আমি চেষ্টা করেছিলাম:

ffmpeg -i 140612_Canon-00001.MTS -t 60 -r 29.97 -y -vcodec copy -acodec libfaac -ab 128k 140612_Canon-00001.MTS.mp4

তবে আউটপুট ফাইলটিতে এখনও ফ্রেমরেট / টাইমবেজ ভুল রয়েছে:

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 
1440x1080 [SAR 4:3 DAR 16:9], 4448 kb/s, 
59.94 fps, 59.94 tbr, 11988 tbn, 59.94 tbc (default)

৫. এমপি 4বক্স ব্যবহার করে রিম্যাক্স

প্রফেসর স্পার্কলসের পরামর্শ অনুসারে আমি এমপি 4বক্স ব্যবহার করে ডেমাক্স এবং রিমাক্স চেষ্টা করেছি।

brew install mp4box

ffmpeg -i 140612_Canon-00000.MTS -t 60 -y \
  -vcodec copy -an 140612_Canon-00000.MTS.h264

ffmpeg -i 140612_Canon-00000.MTS -t 60 -y \
  -vn -acodec libfaac -ab 128k 140612_Canon-00000.MTS.aac

mp4box -add 140612_Canon-00000.MTS.h264:fps=29.97 \
  -add 140612_Canon-00000.MTS.aac \
  -new 140612_Canon-00000.MTS.mp4

এবং আউটপুট ছিল:

$ ffprobe 140612_Canon-00000.MTS.mp4

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '140612_Canon-00000.MTS.mp4':
(snip)
  Duration: 00:02:00.22, start: 0.000000, bitrate: 2293 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), 
          yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 2228 kb/s, 
          29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      creation_time   : 2014-07-14 00:38:23
      handler_name    : 140612_Canon-00000.MTS.h264:fps=29.97
       - Imported with GPAC 0.5.0-rev4065

    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 
          stereo, fltp, 125 kb/s (default)

এটি কিছুটা সামনে এগিয়ে দেখায়। ফ্রেমরেট / টাইমবেজের অংশটি দেখুন: 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc । এগুলি (ধারক থেকে টাইমবেস মান) বাদেtbn মূল স্ট্রিমের সাথে মেলে ।

যাইহোক, আমি যখন কুইকটাইম প্লেয়ার বা ভিএলসির সাহায্যে আউটপুট ফাইলটি খেলি , তখন ভিডিওটি অর্ধ গতিতে ফিরে প্লে হবে

যদিও মূল ফাইলটিতে 90k tbn(প্রতি সেকেন্ডে 90000 টিক্স) রয়েছে এবং এমপি 4বক্সের নতুন আউটপুট ফাইল 30k tbnযা মূল একের এক-তৃতীয়াংশ মান, আউটপুট ফাইলটি অর্ধ গতিতে ফিরে প্লে হবে।

আমি এর কারণ জানি না। তবে আমি মনে করি বাকী সমস্যাটি আমি কীভাবে tbnমানটি সামঞ্জস্য করতে পারি ।


5-খ। আউটপুট ফাইলে মিডিয়াআইএনফো-এর প্রতিবেদন

আমি 5 দ্বারা উত্পাদিত আউটপুট ফাইলটিতে মিডিয়াআইনফো সরঞ্জামটিও চেষ্টা করেছি Rem রিমাক্স এমপি 4বক্স ব্যবহার করে । আউটপুটটি এখানে: https://gist.github.com/kaorukobo/c5ab9eaa413dff6cd26a


6. অ্যাঙ্কনভ চেষ্টা করা

ভোলোদ্যা রিপোর্ট avconvকরেছেন ভাল কাজ করেছে। এছাড়াও আমি একই ক্যামেরায় রেকর্ড করা একটি স্বল্প নমুনা মুভি ফাইল (ক্যানন -00006.MTS) প্রস্তুত করেছি। ঠিক আছে, চেষ্টা করুন:

brew install avconv
avconv -i Canon-00006.MTS -c:a copy -c:v copy -y Canon-00006.MTS.mp4
ffprobe Canon-00006.MTS.mp4

আউটপুট ফাইলের ffprobe তথ্য এখানে: https://gist.github.com/kaorukobo/5b53244ade2632ff1211 এবং এর ফ্রেমরেট / টাইমবেস তথ্য নিম্নলিখিত হিসাবে রয়েছে: 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc

ভোলড্যা রিপোর্ট করেছে, আউটপুট ফাইলটি ভাল ভিএলসি প্লেয়ারের সাথে ফিরে পেল। যাইহোক, কুইকটাইম প্লেয়ার এক্স দিয়ে এটি খোলার পরে ভিডিওটি স্বাভাবিক গতিতে ফিরে প্লে হয়েছিল তবে তার ফ্রেমের পিছনে চুপচাপ বারবার ছিল।


Why. "ফ্রি এভিসিডিডি থেকে এমওভি" অ্যাপ্লিকেশন কেন কাজ করবেন?

যেমনটি আমি আমার পূর্ববর্তী মন্তব্যে উল্লেখ করেছি , ফ্রি এভিসিডিডি টু এমওভি অ্যাপ্লিকেশনটির "এমওভিতে রি-র্যাপ" বৈশিষ্ট্যটি ভালভাবে কাজ করেছে, যদিও এটি এমপি 4 নয় বরং এমওভি তৈরি করে।

সফ্টওয়্যারটি তার নিজস্ব ffmpeg (বা অ্যাভকনভ) প্রোগ্রামটিকে অভ্যন্তরীণভাবে কল করে এবং আমি দেখেছি এতে কোন বিকল্পগুলি দেওয়া হয়। এটি নীচে প্রদর্শিত হিসাবে:

/Applications/Free AVCHD to Mov.app/Contents/Resources/bin/com.geranium-soft.convert \
  -i /path/to/140710_Canon-00003.MTS \
  -map 0:0 -map 0:1 -c:a libfaac -vol 256 -b:a 128k -c:v copy \
  -sn -movflags faststart -threads 0 -pix_fmt yuv420p -y \
  /path/to/140710_Canon-00003.mov

আমি একই বিকল্পগুলি পাস করার চেষ্টা করেছি (এক্সট্রাক্টলি সমান। আমি আউটপুট ধারক প্রকারটি এমওভিতে সেট করেছিলাম এবং এমনকি স্যুইচও সরিয়ে দিয়েছি -t 60)) এফএফএমপিগ প্রোগ্রাম এবং রূপান্তর করতে। তবে ফলাফল এখনও পর্যন্ত রিপোর্ট হিসাবে একই ছিল

যাইহোক, দুর্দান্ত অ্যাপটি "টু। এমপি 4" এবং "দ্বারা ffmpeg" ব্যতীত, "আমি। এমটিএস ফাইল (AVCHD) কে। এমপি 4 এ H264 ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে কীভাবে রূপান্তর করতে পারি" এ আমার সমস্যাটি সমাধান করেছে। তবে আমি এখনও আগ্রহী যে কেন সেই অ্যাপ্লিকেশনটি ভাল করে তবে এফএফএমপিগটি করে না।


"সঠিকভাবে" বলতে কী বোঝ? শিরোনাম থেকে এটি মুছে ফেলতে পারে। আমি সাহায্য করতে চাই তবে আমি কখনই ffmpeg ব্যবহার করি নি। আমি কেবল অ্যাডোব সরঞ্জাম মিডিয়া এনকোডার ব্যবহার করি।
eLouai

@ ইলউই ঠিক আছে, আমি শিরোনাম স্থির করেছি।
কাওরুকো

উত্তর:


8

আপনার প্রশ্নের পাঠ্যের মধ্যে আপনি অন্যান্য ইউটিলিটিগুলি নিয়ে আলোচনা শুরু করেছেন, আমি ধরে নেব যে আপনি ffmpeg এর সাথে স্টিকিং করতে আগ্রহী নন, বরং কাজটি করার ক্ষেত্রে।

লিবাভ এবং এমটিএস নিয়ে আমার অভিজ্ঞতায় ফ্রেমরেটের সাথে আমার কোনও সমস্যা হয়নি, ফাইলগুলি পুরোপুরি রিম্যাক্স হয়।

আমি আমার একটি ফাইল দিয়ে নিম্নলিখিতটি চেষ্টা করেছি:

avconv -i 00174.MTS -c:a copy -c:v copy 00174.mp4

ফলাফল এমপি 4 ফাইলটি ভিএলসির সাথে সঠিকভাবে খেলেছে।

আমার ফাইলটি প্রগতিশীল এমটিএস, আমার চারপাশে কোনও ইন্টারলেসড রাখেনি, তবে প্রয়োজন হলে আমি আরও পরীক্ষা করে দেখতে পারি।

ফাইল পরীক্ষা সম্পর্কে রিপোর্ট

টপিক স্টার্টার একটি ফাইল সরবরাহ করতে সক্ষম হয়েছিল যা এমটিএস থেকে এমপি 4 এ পুনরায় তৈরি হয়েছিল এবং কুইকটাইম প্লেয়ার (সংস্করণ অজানা) দিয়ে সেই ব্যক্তির মেশিনে খেলেনি। এটি অবশ্য সেই ব্যক্তির ভিএলসি প্লেয়ারের সাথে খেলত।

আমার কাছে ম্যাক ওএস কম্পিউটার নেই তবে আমি এটি উবুন্টু দিয়ে চেষ্টা করেছি। আমি এটি VLC (২.০.৮) এর উবুন্টু এবং জিনোম ভিডিওগুলিতে (টোটেম নামে পরিচিত) (3..৮.২) খেলেছি; উভয়ই পুরোপুরি খেলে।

আমি তখন আমার এক বন্ধুকে জিজ্ঞাসা করলাম, যিনি ম্যাকে আছেন এটি খেলতে। তিনি ম্যাভেরিক্সে রয়েছেন (10.9.4) এবং এটি কুইকটাইম প্লেয়ার 10.3 (727.4) এর সাথে দুর্দান্ত খেলেছে।

এই মুহুর্তে এটি নির্দিষ্ট প্লেয়ারের সমস্যা বা কম্পিউটারে কনফিগারেশন সেটিংসে সমস্যা বলে মনে হচ্ছে। এবং সম্ভবত কিউটিপির সর্বশেষতম সংস্করণে আপডেট করার চেষ্টা করা ভাল, সম্ভবত বর্তমান সংস্করণটি প্রথমে মুছে ফেলা এবং পুরানো কনফিগারেশন পুরোপুরি মুছে ফেলা সহ।

আর একটি সম্ভাবনা

আমার যখন একটি পুরানো মেশিন ছিল তখন আমার কিছু উচ্চ বিট্রেট ফাইল কিছু খেলোয়াড়ের মধ্যে ভুলভাবে প্লে হয় এবং এটি ধারক নির্দিষ্ট specific উদাহরণস্বরূপ, ভিএলসি এমটিএস ফাইল খেলতে অস্বীকার করবে, এটি একটি ফ্রেম প্রদর্শন করবে এবং তারপরে পরেরটিটি কেবলমাত্র দেড়-দ্বিতীয় অংশে প্রদর্শন করবে। জিনোম ভিডিওগুলি এটি দুর্দান্ত খেলেছে। তবে এটি এমকেভি-তে পুনঃনির্মাণ করার সময়, উভয় খেলোয়াড়ই এটি যুক্তিসঙ্গতভাবে ভাল খেলেছিল। এটি সম্ভবত অনুরূপ কিছু একটি প্রশ্ন। একজন খেলোয়াড় সম্ভবত কোনও নির্দিষ্ট ধারক (এমপি 4) এমনভাবে পড়ছেন যাতে পর্যাপ্ত সিপিইউ সময় প্রয়োজন হয়, এটি নিজেই শ্বাসরোধ করতে শুরু করে। ঝাঁকুনির প্রভাবটি তখন যা কিছু উপ-প্রসেস সিপিইউ সমাপ্তি গ্রহণ করে, এবং প্লেয়ার খুব দ্রুত পিছনে থাকা সমস্ত ফ্রেমগুলি ডাম্প করে, তার পরে খারাপ সাবপ্রসেস আবার শুরু হয় এবং চক্র চলতে থাকে তার জন্য দায়ী করা যেতে পারে।

এই সম্ভাবনায়, সেরা বিকল্পটি এখনও সফ্টওয়্যার আপগ্রেড করার চেষ্টা করা উচিত। বর্তমান মাল্টিকোর প্রসেসরের সাহায্যে হার্ডওয়্যারটি আসলে না পেয়ে আপগ্রেড করার প্রয়োজনীয়তা পরীক্ষা করা কঠিন হবে তবে কুইকটাইম প্লেয়ার ব্যবহারের সময় সিপিইউ লোডটি দেখে এটি ভিএলসির সাথে তুলনা করা সম্ভব। আপনি কিউটিপি সহ যে কোনও একটি কোরের জন্য যদি 100% দেখেন তবে এটি সম্ভবত এটি সূচক।


এটি সম্ভবত সম্ভাবনা নেই যে অ্যাভকনভ তার জন্য আলাদা কাজ করবে। অ্যাভকনভ ffmpeg একটি কাঁটাচামচ এবং ffmpeg avconv প্রকল্প থেকে ffmpeg থেকে অনেক কমিটিকে একীভূত করছে, এর মতো বড় বাগগুলি সংশোধন করা সম্ভবত ffmpeg এ উপস্থিত থাকবে।
পিটিএস

@ প্রফেসারস্পার্কলস আমি মনে করি যে এখানে এটি কাজ করেছে তা অন্যথায় বিশ্বাস করার পক্ষে যথেষ্ট ভিত্তি রয়েছে। আমি কওরুকোব কি বলে অপেক্ষা করব।
v010dya

@ ভোলোদ্যা আপনার তথ্যের জন্য ধন্যবাদ আমি আমার প্রশ্নের সাথে অ্যাঙ্কনভ চেষ্টা করে প্রতিবেদনটি যুক্ত করেছি।
কাওরুকোব

@ ক্যারুকোবো "বারবার চঞ্চলভাবে তার ফ্রেম পিছনে রেখে" বলতে কী বোঝায়? আউটপুটটি নাড়া দেয় বা এটি কোনও উপায়ে এগিয়ে এবং পিছনে লাফিয়ে যায়?
v010dya

@ ভোলোদ্যা আমি মনে করি আপনার অভিব্যক্তিটি সঠিক। দেখাই বিশ্বাস. আমি ফলস্বরূপ ক্যানন -00006.MTS.mp4 আপলোড করেছি ফাইলড্প্পার.com/ ক্যানন-00006 এমটিএস এ যদি আপত্তি না করে থাকে তবে দয়া করে ভিটিসি না দিয়ে কুইকটাইম প্লেয়ারের (যদি আপনার ম্যাক থাকে ...) দিয়ে সেই ফাইলটি চেষ্টা করে দেখুন।
কাওরুকো

5

এই ffmpeg বাগ অনুযায়ী

ইন্টারলেলেড এইচ .264 প্যাকেটগুলি এমপি 4 এসটিটিএস তৈরি করে বিভক্ত

ইন্টারপ্লেড এইচ .264 এমপি 4-তে থাকা এমপিগ-টিএসকে রিম্যাক্স করার সময়, প্রতিটি ভিডিও ফ্রেমের উভয় ক্ষেত্রই পৃথক প্যাকেটে বিভক্ত হয়। মেডিইনফো এর মতো সফ্টওয়্যার ফ্রেম হার নির্ধারণের জন্য এসটিটিএস ব্যবহার করে। এটি 25fps এর পরিবর্তে 50fps হিসাবে প্রদর্শিত হবে

এখানে প্রতিবেদন করা ফ্রেম রেট মিল নয় বলে উল্লেখ করা হয়েছে ffmpeg muxing ইন্টারলেস্ট MP4 স্ট্রিমির নির্দিষ্টকরণ অনুসারে, প্রতিটি ক্ষেত্রকে একটি প্যাকেটে বিভক্ত করা হয়েছে। এবং এগুলো

"ফ্রেম রেট নির্ধারণের জন্য এমপি 4 ফাইলে নমুনা গণনাটি ব্যবহার করে এমন সফ্টওয়্যারটি কেবল ভুল।" মন্তব্য 7

ক্ষেত্রের জোড়গুলিকে একটি অ্যাক্সেস ইউনিটে মার্জ করা এমপিইজি -4 স্পেসিফিকেশন লঙ্ঘন করে এটি প্যাচ করা হবে না এবং এর ফলে কোনও এনকোডার যা একই কাজ করে।

নোট করুন যে নিচের মতো মিউসড আউটপুটটি পটপ্লেয়ার এবং ভিএলসিতে আমার পক্ষে দুর্দান্ত অভিনয় করে

    ffmpeg version N-76741-g8eadabf Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)

Input #0, mpegts, from '00007.MTS':
  Duration: 00:00:07.01, start: 1.033367, bitrate: 15935 kb/s
  Program 1 
    Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
[mp4 @ 054cf020] Codec for stream 0 does not use global headers but container format requires global headers
Output #0, mp4, to '00007.MTS.mp4':
  Metadata:
    encoder         : Lavf57.16.100
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, 5.1(side), fltp, 128 kb/s
    Metadata:
      encoder         : Lavc57.15.100 aac
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
[mp4 @ 054cf020] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[mp4 @ 054cf020] pts has no value
    Last message repeated 209 times
frame=  420 fps=0.0 q=-1.0 Lsize=   12478kB time=00:00:07.01 bitrate=14564.2kbits/s    
video:12458kB audio:6kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.111239%
[aac @ 052fd480] Qavg: 64863.176

4

আপনি ব্যবহার করে মূল ফ্রেম রেট প্রয়োগের চেষ্টা করতে চাইতে পারেন -r 29.97। FFmpeg সম্ভবত কোনও কারণে ফ্রেমরেট সামঞ্জস্য করার চেষ্টা করছে। আপনার বাক্য গঠন অন্যথায় সঠিক এবং ত্রুটিটি উত্পন্ন করা উচিত নয়।

আপনার তৃতীয় প্রশ্ন সম্পর্কিত। সহজভাবে সম্ভব না। কোডেকগুলি ব্যবহার করার সময় আপনি ফ্রেমগুলি বাদ দিতে পারেন যা পৃথকভাবে ফ্রেমগুলিকে এনকোড করে তবে এইচ 264 এর সাথে নয় তবে এমন কোডেকের সাহায্যে আপনি এখনও ভিডিও স্ট্রিমটি কিছু উপায়ে পরিবর্তন করতে পারেন। ফ্রেম রেট বাড়ানোর ক্ষেত্রেও একই রকম হয়, আপনাকে হয় গণিত ফ্রেম যুক্ত করতে হবে বা কয়েকটি ফ্রেমের সদৃশ করতে হবে।

সম্পাদনা করুন: নীচের মন্তব্য থেকে অতিরিক্ত তথ্য সম্পর্কিত। সম্পূর্ণ নতুন ফাইল না লিখে ফর্ম্যাট শিরোনামে লিখিত ডেটা পরিবর্তন করার দরকার থাকলে আপনি সম্ভবত এটি হেক্স সম্পাদককে করতে চান। এফএফএমপিগের কেবলমাত্র মেটাডেটা পরিবর্তনের বিকল্প রয়েছে যা স্ট্রিমের ডেটা অন্তর্ভুক্ত করে না। কীভাবে এবং কোথায় ফাইল পরিবর্তন করতে হবে তা ধারক বিন্যাসের উপর নির্ভর করে।

অন্য বিকল্পটি হ'ল ধারকটি পুনর্নির্মাণ করা এবং আপনার বিকল্পগুলি নির্দিষ্ট করে ভিডিও এবং অডিও স্ট্রিমটিকে নতুন ধারক হিসাবে পুনরায় সাজানো। আপনি আবার কতটা নির্দিষ্ট করতে পারবেন তা নির্ভর করে ধারক বিন্যাসের উপর। এই ক্ষেত্রে এমপি 4বক্সটি আপনার পক্ষে সহায়ক হতে পারে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করে কাঁচা ভিডিও স্ট্রিমগুলিকে নতুন এমপি 4 এ ম্যাক্স করার সময় আপনি একটি ফ্রেমরেট নির্দিষ্ট করতে পারেন:

MP4Box -add input.h264:fps=29.97 -new output.mp4

ধন্যবাদ। সংক্রান্ত -t 60(সুইচ, এটা নির্দিষ্ট করে না করার জন্য একটি ফ্রেমরেট কিন্তু প্রক্রিয়াকরণের সময়কাল একটি বিকল্পের $ ffmpeg -h|grep -- -t-> -t duration record or transcode "duration" seconds of audio/video)
kaorukobo

ওহ ঠিক যে এটি একটি পৃথক এনকোডার ছিল, ত্রুটির জন্য দুঃখিত।
পিটিএস

উত্তরে আমার সম্পাদনা দেখুন।
পিটিএস

আবার ধন্যবাদ. আমি আপনার পরামর্শ চেষ্টা করে ফলাফল যুক্ত করতে আমার প্রশ্ন সম্পাদনা করেছি। দুর্ভাগ্যক্রমে, সমস্যাটি এখনও ছিল ..
কাওরুকোব

আমার তৃতীয় প্রশ্নের আপনার প্রতিক্রিয়া সম্পর্কে, আমি কেবল "মান" নয়, ভিডিও স্ট্রিমের ফ্রেমরেটটি পরিবর্তন করতে চাই তার ক্ষেত্রে এটি ঠিক আছে। যাইহোক, আমার ক্ষেত্রে, "set framerate/timebase values"মানে কেবল ধারক / কোডেক-স্ট্রিমের শিরোনামে পুনর্লিখনের মান। কেন? এর সাথে মোকাবিলা করার জন্য কয়েকটি মামলা রয়েছে: যে কোনও ক্ষেত্রে এনকোডার (যেমন অ্যাপল কমপ্রেসারের এইচ 264 ট্রান্সকোডার) ভুল স্ট্রিমটিতে ভুল টাইমবেস মান (টিবিসি) ইনজেক্ট করে, এবং এই প্রশ্ন যেমন ffmpeg ভুল ফ্রেমরেট / টাইমবেস মানগুলিকে ইনজেক্ট করে which মূল ভিডিও ফাইলগুলির চেয়ে আলাদা।
কওরুকোব

2

আমি জানি এটি একটি পুরানো প্রশ্ন তবে এটি আমার কাছে নতুন so (-:

একটা জিনিস আমি উল্লেখ করা দেখতে পাচ্ছি না হ'ল ফিল্ড অর্ডার। এটি একটি ইন্টারলেসড ফাইল, সুতরাং এটি বিবেচনা। ওপিতে ফ্রেমগুলি "পিছনে পিছনে কাঁপতে কাঁপতে" উল্লেখ করে যা ভুল ফিল্ড ক্রমের জন্য সর্বদা পতাকা। ভিডিওটি 'কাঁপুন' বাদে অন্যথায় যদি ঠিক থাকে তবে ffmpeg "শীর্ষ ক্ষেত্রকে প্রথমে" জোর করার জন্য যা প্রয়োজন তা যোগ করার চেষ্টা করুন, তবে এখনও ভুল থাকলে তার বিপরীতে। এর জন্য সঠিক পতাকাগুলি দেওয়ার জন্য আমি ffmpeg বিশদের সাথে যথেষ্ট পরিচিত নই।


আমি আপনার উত্তরে কিছু ffmepg কমান্ড চালানোর চেষ্টা করতে চাই। তবে আমার ffmpeg সংস্করণ ২.২.১ এ এমন ক্ষেত্রের ক্রম পরিচালনা করে এমন বিকল্প নেই বলে মনে হচ্ছে। আমি চেষ্টা করেছি ffmpeg -h|egrep 'field|first'কিন্তু এটি কিছুই দেখায় না। Ffmpeg এর পূর্ববর্তী সংস্করণ (0.8.6) এর -topবিকল্প ছিল যা এটি পরিচালনা করতে পারে।
কাওরুকবো

@ কেওরুকোবো ইন্টারনেট এই অফার করে: -vf "ফিল্ডারর্ডার = বিএফএফ" বা = টিএফএফ যেখানে টি এবং বি যথাক্রমে উপরে এবং নীচে নির্দেশ করে। শীর্ষ = 1/0 বিকল্প দৃশ্যত ক্রমে ক্ষেত্র, পড়া হয় লেখা পরিবর্তন করতে ব্যবহৃত হয়। আবার, আমি কেবল আনুষঙ্গিকভাবে ffmpeg / avconv ব্যবহার করি, সুতরাং কোনও গ্যারান্টি নেই।
জিম ম্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.