এমপি 4 গুলি যখন ffmpeg দিয়ে বিভক্ত করা হয় তখন আমি কীভাবে মেটাডেটা অন্তর্ভুক্ত করব?


8

আমার কয়েকটি এমপি 4 রয়েছে যা আমি আমার ফ্লিকার অ্যাকাউন্টে আপলোড করতে চাই তবে তাদের সর্বাধিক আকার 500 মিমি হওয়ায় আমার প্রায় 550 প্রায় আমি তাদের অর্ধেক করে বিভক্ত করার পরিকল্পনা করছিলাম তবে সেগুলি আপলোড করুন, তবে আমি নিশ্চিত করতে চাই যে সমস্ত মেটা ডেটা অন্তর্ভুক্ত কিন্তু এটি বলে মনে হয় না। আমি ভাগ্যবিহীন নীচের প্রত্যেকটির চেষ্টা করেছি, (এই পোস্টের শেষে আমার আসল এবং নতুন এফফপ্রোব আউটপুট রয়েছে):

ffmpeg -ss 00:00:00.00 -t 00:04:19.35 -i SANY0069.MP4 -acodec copy -vcodec copy -map_metadata 0:0 SANY0069A.MP4

ffmpeg -ss 00:00:00.00 -t 00:04:19.35 -i SANY0069.MP4 -acodec copy -vcodec copy -map_meta_data SANY0069.MP4:SANY0069A.MP4 SANY0069A.MP4

এটির সাহায্যে আমি ম্যানুয়ালি এই কমান্ডটি থেকে নেওয়া পৃথক মেটা ট্যাগ তৈরি করেছি

ffmpeg -i SANY0069A.MP4 -f ffmetadata meta.txt
ffmpeg -ss 00:00:00.00 -t 00:04:19.35 -i SANY0069.MP4 -acodec copy -vcodec copy -metadata major_brand="mp42" -metadata minor_version="1" -metadata compatible_brands="mp42avc1" -metadata creation_time="2012-09-29 09:05:50" -metadata comment="SANYO DIGITAL CAMERA CA9" -metadata comment-eng="SANYO DIGITAL CAMERA CA9" SANY0069A.MP4

পূর্ববর্তী কমান্ডের আউটপুট ব্যবহার করে আমি এটিও চেষ্টা করেছি:

ffmpeg -ss 00:00:00.00 -t 00:04:19.35 -i SANY0069.MP4 -acodec copy -vcodec copy -f ffmetadata -i meta.txt SANY0069A.MP4 

আউটপুট: আমার প্রথম কমান্ড থেকে নমুনা আউটপুট:

ffmpeg -ss 00:00:00.00 -t 00:04:19.35 -i SANY0069.MP4 -acodec copy -vcodec copy -map_metadata 0:0 SANY0069A.MP4
ffmpeg version 0.8.12, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 13 2012 09:57:38 with gcc 4.6.3 20120306 (Red Hat 4.6.3-2)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --enable-libcelt --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  8. 0 / 53.  8. 0
  libavformat  53.  5. 0 / 53.  5. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SANY0069.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    creation_time   : 2012-09-29 09:05:50
    comment         : SANYO DIGITAL CAMERA CA9
    comment-eng     : SANYO DIGITAL CAMERA CA9
  Duration: 00:08:38.71, start: 0.000000, bitrate: 9142 kb/s
    Stream #0.0(eng): Video: h264 (Constrained Baseline), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 9007 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      creation_time   : 2012-09-29 09:05:50
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 2012-09-29 09:05:50
File 'SANY0069A.MP4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'SANY0069A.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    creation_time   : 2012-09-29 09:05:50
    comment         : SANYO DIGITAL CAMERA CA9
    comment-eng     : SANYO DIGITAL CAMERA CA9
    encoder         : Lavf53.5.0
    Stream #0.0(eng): Video: libx264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 9007 kb/s, 30k tbn, 29.97 tbc
    Metadata:
      creation_time   : 2012-09-29 09:05:50
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, 127 kb/s
    Metadata:
      creation_time   : 2012-09-29 09:05:50
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
frame= 7773 fps=4644 q=-1.0 Lsize=  289607kB time=00:04:19.35 bitrate=9147.4kbits/s    
video:285416kB audio:4033kB global headers:0kB muxing overhead 0.054571%

এবং ফাইনালি, যখন আমি মূল এবং প্রথম বিভক্ত অংশের ffprobe তুলনা করি আমি 2 নিম্নলিখিত ফলাফলগুলি পাই: মূল

ffprobe version 0.8.12, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jun 13 2012 09:57:38 with gcc 4.6.3 20120306 (Red Hat 4.6.3-2)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --enable-libcelt --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  8. 0 / 53.  8. 0
  libavformat  53.  5. 0 / 53.  5. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SANY0069.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    creation_time   : 2012-09-29 09:05:50
    comment         : SANYO DIGITAL CAMERA CA9
    comment-eng     : SANYO DIGITAL CAMERA CA9
  Duration: 00:08:38.71, start: 0.000000, bitrate: 9142 kb/s
    Stream #0.0(eng): Video: h264 (Constrained Baseline), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 9007 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      creation_time   : 2012-09-29 09:05:50
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 2012-09-29 09:05:50

বিভক্ত করা

ffprobe version 0.8.12, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jun 13 2012 09:57:38 with gcc 4.6.3 20120306 (Red Hat 4.6.3-2)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --enable-libcelt --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  8. 0 / 53.  8. 0
  libavformat  53.  5. 0 / 53.  5. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SANY0069A.MP4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf53.5.0
    comment         : SANYO DIGITAL CAMERA CA9
  Duration: 00:04:19.37, start: 0.000000, bitrate: 9146 kb/s
    Stream #0.0(eng): Video: h264 (Constrained Baseline), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 9015 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00

আমি জানি এটি অবিশ্বাস্যভাবে দীর্ঘ কিন্তু এটি আসলে একটি খুব সাধারণ প্রশ্ন। আমি ভেবেছিলাম যতটা সম্ভব বিশদ সরবরাহ করা ভাল।

এখানে কোন পরামর্শ মহান হবে,

ধন্যবাদ


1
দীর্ঘ, বিস্তারিত প্রশ্নগুলি বিপরীতে তুলনায় অনেক ভাল, এবং ffmpeg কনসোল আউটপুট জিজ্ঞাসা না করা ভাল good
লোগান

হ্যাঁ আমি তাই ভেবেছি, আমি ঠিক একটি লিনাক্স নুব না তাই আমি বুঝতে পেরেছিলাম এটি এমন তথ্য যা আসলে যে কেউ সাহায্য করতে পারে তার প্রয়োজন হবে।
জোশ

আমি কেবল এটি সংক্ষেপে দেখেছি, তবে আমি সমস্ত কিছু বিশ্বাস করি creation_time(এটি বাদ না দেওয়া) এবং commentস্বয়ংক্রিয়ভাবে সেট হয়ে যায়। গিট থেকে বর্তমানের ffmpeg এর creation_timeমধ্যে 0.8.12এবং এর আচরণের পার্থক্য মনে হয় ; আমি এটি অন্তর্ভুক্ত না করে এটি এটিকে যুক্ত / অনুলিপি করে দেখায় না। আমি কোডটি উল্লেখ করিনি, তবে creation_timeকপি করা স্রোতগুলি অনুলিপি না করা আপনি কাকে জিজ্ঞাসা করে তার উপর নির্ভর করে কোনও বাগ হিসাবে বিবেচিত হতে পারে বা নাও বিবেচনা করা যেতে পারে।
লোগান

আমি মনে করি এটি আমার সিস্টেমে যেভাবে আচরণ করছে তা সবার কাছে একটি বাগ হিসাবে বিবেচিত হবে, যদি এটি আসল ভিডিও থেকে সৃষ্টির সময়টি অনুলিপি না করে থাকে তবে তা কি এখন সৃষ্টির সময়টিকে সেট করা উচিত নয়? এটি হল, 1/1/1970 এর পরিবর্তে (যুগ)? এছাড়াও, যদি আমি "অনুলিপি" কোডেক ব্যবহার করি তবে মেজর_ব্রান্ড, গৌণ_পরিবর্তন এবং সামঞ্জস্যপূর্ণ_ব্রান্ডগুলি একই হওয়া উচিত নয়? একইভাবে এনকোডার সেট করা হচ্ছে?
জোশ

উত্তর:


2

এফএফপিজেগের মেটাডেটা স্বয়ংক্রিয়ভাবে বহন করা উচিত (সুতরাং এটি ব্যবহার না করে চেষ্টা করুন -map_metadataএবং এটি কাজ করে কিনা তা দেখুন) তবে এটির -map_metadata 0পরিবর্তে যদি আপনার ব্যবহারের চেষ্টা না করা হয় -map_metadata 0:0- :0সেখানে প্রথম ডেটা স্ট্রিম (সম্ভবত ভিডিও) বোঝানো হয়েছে, এবং এফএফএমপিগ চেষ্টা করছে পুরো ফাইলটির চেয়ে কেবল স্ট্রিম-নির্দিষ্ট মেটাডেটা অনুলিপি করতে।

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