
Recherche avancée
Médias (3)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (14)
-
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Taille des images et des logos définissables
9 février 2011, parDans beaucoup d’endroits du site, logos et images sont redimensionnées pour correspondre aux emplacements définis par les thèmes. L’ensemble des ces tailles pouvant changer d’un thème à un autre peuvent être définies directement dans le thème et éviter ainsi à l’utilisateur de devoir les configurer manuellement après avoir changé l’apparence de son site.
Ces tailles d’images sont également disponibles dans la configuration spécifique de MediaSPIP Core. La taille maximale du logo du site en pixels, on permet (...) -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)
Sur d’autres sites (4495)
-
Revision ccba289f8d : Fast computation path for forward transform and quantization This commit enable
30 mai 2014, par Jingning HanChanged Paths :
Modify /vp9/common/vp9_rtcd_defs.pl
Modify /vp9/encoder/vp9_block.h
Modify /vp9/encoder/vp9_context_tree.h
Modify /vp9/encoder/vp9_dct.c
Modify /vp9/encoder/vp9_encodeframe.c
Modify /vp9/encoder/vp9_encodemb.c
Modify /vp9/encoder/vp9_encodemb.h
Modify /vp9/encoder/vp9_pickmode.c
Modify /vp9/encoder/vp9_quantize.c
Modify /vp9/encoder/vp9_quantize.h
Modify /vp9/encoder/x86/vp9_dct_sse2.c
Fast computation path for forward transform and quantizationThis commit enables a fast path computational flow for forward
transformation. It checks the sse and variance of prediction
residuals and decides if the quantized coefficients are all
zero, dc only, or more. It then selects the corresponding coding
path in the forward transformation and quantization stage.It is currently enabled in rtc coding mode. Will do it for rd
coding mode next.In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
Overall coding performance for rtc set is changed by -0.18%.Change-Id : I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
-
I am using ffmpeg java library to convert captured screenshots to video. Video output is blurry
2 octobre 2020, par dark princeI am using ffmpeg java library to convert captured screenshots to video. Video which is generated as output is blurry.


I am using bit rate as 9000, frames per sec as 25 and video size as that of desktop screen size.


Any suggestions on how to solve this issue.


P.S. I cannot use ffmpeg.exe and command line due to certain restrictions and hence I am opting for ffmpeg java library.


Any suggestions on the issue or suggestions on any better approach will be helpful.


import java.awt.AWTException;
 import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.Rectangle;
 import java.awt.Robot;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.IOException;
 import java.util.Date;
 
 import javax.imageio.ImageIO;
 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 
 import org.bytedeco.javacpp.avcodec;
 import org.bytedeco.javacv.FFmpegFrameRecorder;
 import org.bytedeco.javacv.OpenCVFrameConverter;
 
 public class ScreenRecorder{
 
 public static boolean videoComplete=false;
 public static String inputImageDir="inputImgFolder"+File.separator;
 public static String inputImgExt="png";
 public static String outputVideo="recording.mp4"; 
 public static int counter=0;
 public static int imgProcessed=0;
 public static FFmpegFrameRecorder recorder=null;
 public static int videoWidth=1920;
 public static int videoHeight=1080;
 public static int videoFrameRate=3;
 public static int videoQuality=0; // 0 is the max quality
 public static int videoBitRate=9000;
 public static String videoFormat="mp4";
 public static int videoCodec=avcodec.AV_CODEC_ID_MPEG4;
 public static Thread t1=null;
 public static Thread t2=null;
 public static JFrame frame=null;
 public static boolean isRegionSelected=false;
 public static int c1=0;
 public static int c2=0;
 public static int c3=0;
 public static int c4=0;
 
 
 public static void main(String[] args) {
 
 try {
 if(getRecorder()==null)
 {
 System.out.println("Cannot make recorder object, Exiting program");
 System.exit(0);
 }
 if(getRobot()==null)
 {
 System.out.println("Cannot make robot object, Exiting program");
 System.exit(0);
 }
 File scanFolder=new File(inputImageDir);
 scanFolder.delete();
 scanFolder.mkdirs();
 
 createGUI();
 } catch (Exception e) {
 System.out.println("Exception in program "+e.getMessage());
 }
 }
 
 public static void createGUI()
 {
 frame=new JFrame("Screen Recorder");
 JButton b1=new JButton("Select Region for Recording");
 JButton b2=new JButton("Start Recording");
 JButton b3=new JButton("Stop Recording");
 JLabel l1=new JLabel("<br />If you dont select a region then full screen recording <br /> will be made when you click on Start Recording");
 l1.setFont (l1.getFont ().deriveFont (20.0f));
 b1.addActionListener(new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {
 try {
 JOptionPane.showMessageDialog(frame, "A new window will open. Use your mouse to select the region you like to record");
 new CropRegion().getImage();
 } catch (Exception e1) {
 // TODO Auto-generated catch block
 System.out.println("Issue while trying to call the module to crop region");
 e1.printStackTrace();
 } 
 }
 });
 b2.addActionListener(new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {
 counter=0;
 startRecording();
 }
 });
 b3.addActionListener(new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {
 stopRecording();
 System.out.print("Exiting...");
 System.exit(0);
 }
 });
 
 frame.add(b1);
 frame.add(b2);
 frame.add(b3);
 frame.add(l1);
 frame.setLayout(new FlowLayout(0));
 frame.setVisible(true);
 frame.setSize(1000, 170);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 
 public static void startRecording()
 {
 t1=new Thread()
 {
 public void run() {
 try {
 takeScreenshot(getRobot());
 } catch (Exception e) {
 JOptionPane.showMessageDialog(frame, "Cannot make robot object, Exiting program "+e.getMessage());
 System.out.println("Cannot make robot object, Exiting program "+e.getMessage());
 System.exit(0);
 }
 }
 };
 
 t2=new Thread()
 {
 public void run() {
 prepareVideo();
 }
 };
 
 t1.start();
 t2.start();
 System.out.println("Started recording at "+new Date());
 }
 
 public static Robot getRobot() throws Exception
 {
 Robot r=null;
 try {
 r = new Robot();
 return r;
 } catch (AWTException e) {
 JOptionPane.showMessageDialog(frame, "Issue while initiating Robot object "+e.getMessage());
 System.out.println("Issue while initiating Robot object "+e.getMessage());
 throw new Exception("Issue while initiating Robot object");
 }
 }
 
 public static void takeScreenshot(Robot r)
 {
 Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
 Rectangle rec=new Rectangle(size);
 if(isRegionSelected)
 {
 rec=new Rectangle(c1, c2, c3-c1, c4-c2);
 }
 while(!videoComplete)
 {
 counter++;
 BufferedImage img = r.createScreenCapture(rec);
 try {
 ImageIO.write(img, inputImgExt, new File(inputImageDir+counter+"."+inputImgExt));
 } catch (IOException e) {
 JOptionPane.showMessageDialog(frame, "Got an issue while writing the screenshot to disk "+e.getMessage());
 System.out.println("Got an issue while writing the screenshot to disk "+e.getMessage());
 counter--;
 }
 }
 }
 
 public static void prepareVideo()
 {
 File scanFolder=new File(inputImageDir);
 while(!videoComplete)
 {
 File[] inputFiles=scanFolder.listFiles();
 try {
 getRobot().delay(500);
 } catch (Exception e) {
 }
 //for(int i=0;i/imgProcessed++;
 addImageToVideo(inputFiles[i].getAbsolutePath());
 //String imgToAdd=scanFolder.getAbsolutePath()+File.separator+imgProcessed+"."+inputImgExt;
 //addImageToVideo(imgToAdd);
 //new File(imgToAdd).delete();
 inputFiles[i].delete();
 }
 }
 
 File[] inputFiles=scanFolder.listFiles();
 for(int i=0;i/ maximum quality
 recorder.start();
 }
 catch(Exception e)
 {
 JOptionPane.showMessageDialog(frame, "Exception while starting the recorder object "+e.getMessage());
 System.out.println("Exception while starting the recorder object "+e.getMessage());
 throw new Exception("Unable to start recorder");
 }
 return recorder;
 }
 
 public static OpenCVFrameConverter.ToIplImage getFrameConverter()
 {
 OpenCVFrameConverter.ToIplImage grabberConverter = new OpenCVFrameConverter.ToIplImage();
 return grabberConverter;
 }
 
 public static void addImageToVideo(String imgPath)
 {
 try {
 getRecorder().record(getFrameConverter().convert(cvLoadImage(imgPath)));
 } catch (Exception e) {
 JOptionPane.showMessageDialog(frame, "Exception while adding image to video "+e.getMessage());
 System.out.println("Exception while adding image to video "+e.getMessage());
 }
 }
 
 public static void stopRecording()
 {
 try {
 videoComplete=true;
 System.out.println("Stopping recording at "+new Date());
 t1.join();
 System.out.println("Screenshot thread complete");
 t2.join();
 System.out.println("Video maker thread complete");
 getRecorder().stop();
 System.out.println("Recording has been saved successfully at "+new File(outputVideo).getAbsolutePath());
 JOptionPane.showMessageDialog(frame, "Recording has been saved successfully at "+new File(outputVideo).getAbsolutePath());
 } catch (Exception e) {
 System.out.println("Exception while stopping the recorder "+e.getMessage());
 }
 }
 }



Imagepanel.java


import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

class ImagePanel
 extends JPanel
{
 private Image img;
 
 public ImagePanel(String img)
 {
 this(new ImageIcon(img).getImage());
 }
 
 public ImagePanel(Image img)
 {
 this.img = img;
 Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
 
 setPreferredSize(size);
 setMinimumSize(size);
 setMaximumSize(size);
 setSize(size);
 setLayout(null);
 }
 
 public void paintComponent(Graphics g)
 {
 g.drawImage(this.img, 0, 0, null);
 }
}



CropRegion.java


import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;


public class CropRegion implements MouseListener,
 MouseMotionListener {

 int drag_status = 0;
 int c1;
 int c2;
 int c3;
 int c4;
 JFrame frame=null;
 static int counter=0;
 JLabel background=null;

 
 public void getImage() throws AWTException, IOException, InterruptedException {
 Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
 Robot robot = new Robot();
 BufferedImage img = robot.createScreenCapture(new Rectangle(size));
 ImagePanel panel = new ImagePanel(img);
 frame=new JFrame();
 frame.add(panel);
 frame.setLocation(0, 0);
 frame.setSize(size);
 frame.setLayout(new FlowLayout());
 frame.setUndecorated(true);
 frame.setVisible(true);
 frame.addMouseListener(this);
 frame.addMouseMotionListener(this);
 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 }

 public void draggedScreen() throws Exception {
 ScreenRecorder.c1=c1;
 ScreenRecorder.c2=c2;
 ScreenRecorder.c3=c3;
 ScreenRecorder.c4=c4;
 ScreenRecorder.isRegionSelected=true;
 JOptionPane.showMessageDialog(frame, "Region Selected.Please click on Start Recording button to record the selected region.");
 frame.dispose();
 }

 public void mouseClicked(MouseEvent arg0) {
 }

 public void mouseEntered(MouseEvent arg0) {
 }

 public void mouseExited(MouseEvent arg0) {
 }

 public void mousePressed(MouseEvent arg0) {
 paint();
 this.c1 = arg0.getX();
 this.c2 = arg0.getY();
 }

 public void mouseReleased(MouseEvent arg0) {
 paint();
 if (this.drag_status == 1) {
 this.c3 = arg0.getX();
 this.c4 = arg0.getY();
 try {
 draggedScreen();
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 }

 public void mouseDragged(MouseEvent arg0) {
 paint();
 this.drag_status = 1;
 this.c3 = arg0.getX();
 this.c4 = arg0.getY();
 }

 public void mouseMoved(MouseEvent arg0) {
 }

 public void paint() {
 Graphics g = frame.getGraphics();
 frame.repaint();
 int w = this.c1 - this.c3;
 int h = this.c2 - this.c4;
 w *= -1;
 h *= -1;
 if (w < 0) {
 w *= -1;
 }
 g.drawRect(this.c1, this.c2, w, h);
 }
}



-
ffmpeg - how to pass all streams audio/tmcd, etc from input->output unchanged
22 avril 2021, par QRrabbitPlease help me, with hopefully specific ffmpeg arguments to include in my video encoding.


My work is only related to video stream, so this is the only one I'm changing.
I receive a .mov file(s) that have already been pre-compiled for a specific broadcaster, some of those selfcontained videos have 4 streams (1 video, 2 audio, and some other timecode stream). Others have up to 17 streams : 1-video, 15-audio streams and the final one is unsupported tmcd.


My process pipeline includes only re-encoding/re-processing video stream, and everything else I need to pass along to the output file - all other streams without any changes or alterations.


During this step of encoding, I insert icon.png into position 5:21 from sec 2-3, from 4-5, and from 6-8. To achieve this, I use map option, so my encoding string looks like this :


ffmpeg -i in.mov -i icon.png -i icon.png -i icon.png
 -filter_complex " [0][1]overlay=5:21:enable='between(t,2,3)'[v1];
 [v1][2]overlay=5:21:enable='between(t,4,5)'[v2];
 [v2][3]overlay=5:21:enable='between(t,6,8)'[v3]" -map '[v3]' -map 0:a
 -c:v dvvideo -pix_fmt yuv422p -b:v 115084915 -maxrate 115084915 -minrate 115084915 -r 29.97 -top 1 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -vtag dvh6
 -c:a copy -c:s copy -y out.mov



The problem is that the out.mov only shows with 2 streams instead of 17 (1-video, and 2-audio). All other 15 streams are truncated completely.
Reading some other stackoverflow posts I found a way to transfer all other streams, is by using -map 0 :


But as I tried adding -map 0 on my last line :


...
 -map 0 -c:a copy -c:s copy -y out.mov



but this doubles the number of streams from 17 to 34 - also double in output file size.
If I remove map '[v3]' -map 0:a from my original encoding string and only include -map 0, I get correct number of streams, but, of course icon.png is not getting inserted at the right time. What should I do ?


If there's a way to re-map my -filter_complex to overlay images without using this -map option ? Or, be specific at what each -map referring to ?


If not, what other arguments/parameters can I use, if such option even exists, to copy all streams, subs and all other audio, potentially some other signal for audio impairment, if such exists.


Please help, so I can finally wrap my output and submit my work.


EDIT 1 :
Here's my output :


ffprobe version N-99345-g904ab5365c Copyright (c) 2007-2020 the FFmpeg developers
 built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
 configuration: --enable-filter=qrrabbit --enable-opengl --enable-gpl --enable-libx264 --extra-libs='-lqrencode -lpthread'
 libavutil 56. 59.100 / 56. 59.100
 libavcodec 58.106.100 / 58.106.100
 libavformat 58. 58.100 / 58. 58.100
 libavdevice 58. 11.102 / 58. 11.102
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mov':
 Metadata:
 major_brand : qt 
 minor_version : 512
 compatible_brands: qt 
 creation_time : 2020-02-29T22:07:42.000000Z
 encoder : Lavf58.58.100
 Duration: 00:00:20.05, start: 0.000000, bitrate: 133544 kb/s
 Stream #0:0: Video: dvvideo (dvh6 / 0x36687664), yuv422p(bt709, top first), 1280x1080 [SAR 3:2 DAR 16:9], 115084 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 29.97 tbc (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : VideoHandler
 encoder : Lavc58.106.100 dvvideo
 timecode : 00:00:00;00
 Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:9(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:10(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:11(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:12(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:13(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:14(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:15(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:16(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:17(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : VideoHandler
 timecode : 00:00:00;00
Unsupported codec with id 0 for input stream 17



and here's ffprobe from the input file :


ffprobe version N-99345-g904ab5365c Copyright (c) 2007-2020 the FFmpeg developers
 built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
 configuration: --enable-filter=qrrabbit --enable-opengl --enable-gpl --enable-libx264 --extra-libs='-lqrencode -lpthread'
 libavutil 56. 59.100 / 56. 59.100
 libavcodec 58.106.100 / 58.106.100
 libavformat 58. 58.100 / 58. 58.100
 libavdevice 58. 11.102 / 58. 11.102
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
 Metadata:
 major_brand : qt 
 minor_version : 537199360
 compatible_brands: qt 
 creation_time : 2020-02-29T22:07:42.000000Z
 Duration: 00:00:20.05, start: 0.000000, bitrate: 133935 kb/s
 Stream #0:0(eng): Video: dvvideo (dvh6 / 0x36687664), yuv422p(bt709, top coded first (swapped)), 1280x1080 [SAR 3:2 DAR 16:9], 115084 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 29.97 tbc (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Video Media Handler
 encoder : DVCPRO HD 1080i60
 timecode : 00:00:00;00
 Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:9(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:10(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:11(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:12(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:13(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:14(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:15(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:16(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:17(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Time Code Media Handler
 timecode : 00:00:00;00
Unsupported codec with id 0 for input stream 17