একত্রীকরণে অ-একঘেয়ে ডিটিএস (ffmpeg)


17

এই কমান্ডটি চালানোর পরে ffmpeg -f concat -i mylist.txt -c copy output.mp4- আমি দূষিত output.mp4ফাইল এবং এই বার্তাটি পেয়ে যাচ্ছি :

ffmpeg -f concat -i mylist.txt -c copy output.mp4
ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.6.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. 25.101 / 56. 25.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 11.102 /  5. 11.102
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, concat, from 'mylist.txt':
  Duration: N/A, start: 0.000000, bitrate: 829 kb/s
    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x900, 701 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf56.25.101
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1440x900, q=2-31, 701 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x7f897a01bc00] Non-monotonous DTS in output stream 0:0; previous: 598061, current: 467644; changing to 598062. This may result in incorrect timestamps in the output file.
[mp4 @ 0x7f897a01bc00] Non-monotonous DTS in output stream 0:0; previous: 598062, current: 468044; changing to 598063. This may result in incorrect timestamps in the output file.
[mp4 @ 0x7f897a01bc00] Non-monotonous DTS in output stream 0:0; previous: 598063, current: 468444; changing to 598064. This may result in incorrect timestamps in the output file.
...
[mp4 @ 0x7f897a01bc00] Non-monotonous DTS in output stream 0:0; previous: 598362, current: 588044; changing to 598363. This may result in incorrect timestamps in the output file.
frame= 1472 fps=0.0 q=-1.0 Lsize=    5825kB time=00:00:49.04 bitrate= 973.0kbits/s
video:4903kB audio:877kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.776358%

কন্টেন্ট mylist.txt

file 'cut.mp4'
file 'cut2.mp4'

ffmpeg থেকে cut.mp4 আউটপুট:

ffmpeg -i cut.mp4
ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.6.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. 25.101 / 56. 25.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 11.102 /  5. 11.102
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'cut.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.25.101
  Duration: 00:00:39.04, start: 0.036281, bitrate: 837 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x900, 701 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

ffmpeg থেকে cut2.mp4 আউটপুট:

ffmpeg -i cut2.mp4
ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
  built with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.6.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. 25.101 / 56. 25.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 11.102 /  5. 11.102
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'cut2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.25.101
  Duration: 00:00:10.07, start: 0.000000, bitrate: 1498 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1440x900, 1271 kb/s, 30 fps, 30 tbr, 12k tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 218 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

cut.mp4 আমি এই আদেশ পেয়েছি ffmpeg -ss 00:00:11 -i myfile.mp4 -to 00:00:39 -vf 'drawbox= : x=0 : y=0 : color=invert' cut.mp4

cut2.mp4 আমি এই আদেশ পেয়েছি ffmpeg -ss 00:00:00 -i myfile.mp4 -to 00:00:10 -c copy cut2.mp4

আমি অনেক অনুসন্ধান করেছি - কোনও সমাধান খুঁজে পেলাম না, হতে পারে যে কেউ আমাকে এটির সাহায্য করতে পারে।

output.mp4 বাজানো যায় তবে অদ্ভুত লাগে looks

এখানে চিত্র বর্ণনা লিখুন


1
আমি উভয় ইনপুট ফাইল সরবরাহ করতে পারি যাতে আমি পরীক্ষা করতে পারি?
লোগান

@ লর্ডনেকবার্ড হ্যাঁ, আমি এটি আপনাকে পাঠিয়েছি, আপনাকে অনেক ধন্যবাদ।
হোয়াইটসাইরই

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

@ লর্ডনেকবার্ড আপনাকে অনেক ধন্যবাদ, হ্যাঁ এই সংস্করণটি ffmpeg সংস্করণ N-71996-g372aa07-tessus দিয়ে এটি দুর্দান্ত কাজ করে। ধন্যবাদ.
হোয়াইটসাইরই

TL; ড; -c copyপুনরায় এনকোডিং বা -c:a copyশুধুমাত্র ব্যবহারের অনুমতি দিতে অপসারণ করুন । এরপরে কনক্যাট পদক্ষেপটি এখনও ব্যবহার করতে পারে -c copyযেহেতু সমস্ত ভিডিও ইতিমধ্যে পুনরায় এনকোড হয়েছে। নোট করুন যে এই সতর্কতা সহ কয়েকটি ভিডিও কনক্যাট পরে ঠিক আছে এবং ঠিক আছে -c copy
18

উত্তর:


10

সর্বশেষ ব্যবহার করা ffmpeg

সাধারণ ব্যবহারকারীদের সর্বদা ffmpegবর্তমান গিট মাস্টার শাখা (সর্বশেষতম কোড উপলব্ধ) থেকে ব্যবহার করা উচিত :

  • কোনও সমস্যার মুখোমুখি হওয়ার সময় প্রথমে করণীয় হ'ল আপনি গিট মাস্টারের কাছ থেকে কোনও বিল্ড ব্যবহার করছেন কিনা তা পরীক্ষা করে দেখুন।
  • এটি স্থিতিশীল হিসাবে বিবেচিত হয়।
  • এতে আরও বাগ ফিক্স এবং বৈশিষ্ট্য থাকবে।
  • FFmpeg বিকাশ খুব সক্রিয়
  • আপনি যদি অফিসিয়াল সহায়তা সংস্থান থেকে সমর্থন পেতে চান তবে আপনাকে গিট মাস্টার ব্যবহার করতে হবে।
  • রিলিজ বিতরণকারীদের জন্য।

বিভিন্ন বিকল্পের জন্য এফএফপিপেগ ডাউনলোড পৃষ্ঠাটি দেখুন , বা এফএফপিপে উইকি: সংকলন গাইডগুলি দেখুন

অন্যান্য উপাদান

  • আপনার কমান্ডে drawboxআপনি অডিওটিকে-c:a copy পুনরায় এনকোড করার পরিবর্তে অনুলিপি করতে পারবেন ।

  • ব্যবহার করার সময় -ss, -toকেবল -ssআউটপুট বিকল্প হিসাবে ব্যবহৃত হলে প্রত্যাশিত হিসাবে কাজ করে ।


আপনাকে অনেক ধন্যবাদ, এটি আরও ভাল এবং দ্রুত কাজ করে। আপনি কি এটি একটি খুব চেক করতে পারেন video.stackexchange.com / প্রশ্নগুলি / 15477/ … এটি সহজ করা যায় যদি আমি শুধু কৌতূহলী।
হোয়াইটসাইরই

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

তার জন্য দুঃখিত।
হোয়াইটসাইরই

1

অনুযায়ী https://trac.ffmpeg.org/wiki/Concatenate

আমার এই একই সমস্যা ছিল। আমি একটি ম্যাক এ ffmpeg সংস্করণ 2.6.3 চালাচ্ছি। আমি আমার সোর্স ক্লিপগুলিকে -Q 0-র একটি যুক্ত ট্যাগ দিয়ে .MTS ফর্ম্যাটে রূপান্তর করেছি, পাঠ্য ফাইলে এক্সটেনশানগুলি আপডেট করেছি এবং ffmpeg এ কনক্যাট কমান্ডটি চালানোর সময় আমার আউটপুট ফাইলটিকে একটি .MTS এ সেট করে। এটি একটি মোহন মত কাজ করে। আমার কর্মপ্রবাহ এখানে।

ffmpeg -i clip-1.MOV -q 0 clip-1.MTS

ffmpeg -i clip-2.MOV -q 0 clip-2.MTS

পাঠ্য ফাইলটি (mylist.txt) আপডেট করেছেন:

file clip-1.MTS
file clip-2.MTS

তারপরে নিম্নরূপভাবে কনক্যাট কমান্ডটি চালিত হয়েছিল:

ffmpeg -f concat -i mylist.txt -c copy output.MTS

আমার জন্য কাজ! আপনি চূড়ান্ত আউটপুটকে রূপান্তর করতে পারেন M আপনার প্রয়োজন মতো ফর্ম্যাটে এমটিএস।


এই প্রোটোকল ক্ষতিহীন?
বেকো

না, প্রথম কমান্ডটি এমপিইজি -২ এ রূপান্তর করে যাতে লসলেস মোড নেই।
জ্ঞান

1

আমি একই রকম ত্রুটি পেয়েছি এবং আমার আউটপুট ভিডিওগুলিতে অডিওটি কখনও কখনও সিঙ্কের বাইরে চলে যায় এবং কখনও কখনও পুরোপুরি অনুপস্থিত থাকে তবে এর mkvmergeপরিবর্তে আমি এমকেভিটোলনিক্স থেকে শেষ করেছিলাম ।

আমার ইনপুট ভিডিওগুলি বিভিন্ন সেটিংসের সাথে এনকোড করা হয়েছিল এবং তাদের বিভিন্ন মাত্রা ছিল, তাই আমি প্রথমে তাদেরকে পুনরায় আকার দিয়ে এগুলি ব্যবহার করে পুনরায় এনকোড করেছি ffmpeg:

for f in *.mp4;do w=1280;h=720;ffmpeg -i $f -filter:v "scale=iw*min($w/iw\,$h/ih):ih*min($w/iw\,$h/ih),pad=$w:$h:($w-iw*min($w/iw\,$h/ih))/2:($h-ih*min($w/iw\,$h/ih))/2" -c:v libx264 -crf 22 -preset slow -pix_fmt yuv420p -c:a libfdk_aac -vbr 3 -ac 2 -ar 44100 ${f%mp4}mkv;done

আমার কিছু ইনপুট ভিডিওতে অডিও চ্যানেল নেই, তাই আমি তাদের কাছে একটি নীরব অডিও চ্যানেল যুক্ত করার জন্য এই জাতীয় একটি আদেশ ব্যবহার করেছি:

for f in *.mkv;do ffprobe $f|&grep -q '1: Audio'||ffmpeg -i $f -f lavfi -i anullsrc -c:a libfdk_aac -shortest -c:v copy temp-$f;mv {temp-,}$f;done

এর পরে আমি ভিডিওগুলিকে সম্মতি দিয়েছি:

mkvmerge -o /tmp/output.mkv $(printf %s\\n *.mkv|sed '1!s/^/+/')

যদি আপনার ইনপুট ফাইলগুলির একই মাত্রা, একই সংখ্যক অডিও চ্যানেল, একই অডিও নমুনা হার এবং এই জাতীয় কিছু থাকে তবে আপনি কেবলমাত্র mkvmergeক্ষতিগ্রস্থ ফাইলগুলিকে সংলগ্ন করতে ব্যবহার করতে পারেন । এর জন্য ইনপুট ফাইলগুলিতে mkvmergeএকটি এমপি 4 ধারকও থাকতে পারে তবে আউটপুট ফাইলটিতে একটি এমকেভি ধারক থাকবে এমনকি যদি তার ফাইলের নাম এক্সটেনশনটি নির্দিষ্ট করা থাকে .mp4। আপনি ffmpeg -i output.mkv -c copy output.mp4ধারক পরিবর্তন করতে চালাতে পারেন ।

mkvmergeযেমন একটি বাক্য গঠন আছে mkvmerge -o output.mkv file1.mkv + file2.mkv + file3.mkv, যেখানে mkvmerge -o output.mkv file1.mkv +file2.mkv +file3.mkvএটি গ্রহণ করা হয়।


1

ডানকের সত্যিকারের সহায়ক উত্তরের ভিত্তিতে:

for f in ./*.mp4; do ffmpeg -i $f -q 0 "${f%.*}.mts"; done

তারপর এই:

ffmpeg -f concat -safe 0 -i <(for f in ./*.mts; do echo "file '$PWD/$f'"; done) -c copy All.mts

0

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.