Converta o VideoCD corrompido para fazer o upload para o YouTube

0

Eu tenho alguns vídeos caseiros em VideoCDs e gostaria de transferir para o YouTube para que eu possa compartilhá-los com a família. Eu fiz backup das imagens de CD na minha unidade com dd e reproduzi essas imagens com mplayer funcionando bem.

MPlayer 1.3.0-7.1.0 (C) 2000-2016 MPlayer Team

Playing serbare-gradinita.bin.
Cache fill:  0.00% (0 bytes)   

libavformat version 57.71.100 (external)
MPEG-PS file format detected.
VIDEO:  MPEG2  704x576  (aspect 2)  25.000 fps  9048.0 kbps (1131.0 kbyte/s)
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.89.100 (external)
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
[ac3 @ 0x7f22dad2a880]frame sync error
AUDIO: 48000 Hz, 2 ch, floatle, 256.0 kbit/8.33% (ratio: 32000->384000)
Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
==========================================================================
AO: [alsa] 48000Hz 2ch floatle (4 bytes per sample)
Starting playback...
[ac3 @ 0x7f22dad2a880]frame sync error
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
Movie-Aspect is undefined - no prescaling applied.
VO: [vdpau] 704x576 => 704x576 Planar YV12 
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [vdpau] 704x576 => 768x576 Planar YV12 
A:  27.8 V:  27.9 A-V: -0.149 ct: -0.008   5/  5 ??% ??% ??,?% 0 0 50% 
[mpeg2video @ 0x7f22dad2a880]ac-tex damaged at 6 29
[mpeg2video @ 0x7f22dad2a880]Warning MVs not available
[mpeg2video @ 0x7f22dad2a880]concealing 308 DC, 308 AC, 308 MV errors in P frame
A:   0.5 V:  29.7 A-V:-29.225 ct: -0.176  49/ 49  9% 11%  7.6% 1 0 49% 
[mpeg2video @ 0x7f22dad2a880]ac-tex damaged at 20 9
[mpeg2video @ 0x7f22dad2a880]Warning MVs not available
[mpeg2video @ 0x7f22dad2a880]concealing 1188 DC, 1188 AC, 1188 MV errors in I frame
A:   4.4 V:   4.4 A-V:  0.010 ct:  0.191 155/155 11% 16%  2.9% 3 0 50%

mplayer nos informa que alguns quadros estão corrompidos, mas ainda é possível reproduzi-lo bem.

Agora, quero usar o ffmpeg para convertê-lo em algo que possa ser enviado de forma ideal para o YouTube, mas isso falha.

ffmpeg -s 704x576 -codec mpegvideo -v 9 -loglevel 99 -analyzeduration 2147483647 -probesize 2147483647 -i serbare-gradinita.bin /tmp/test.avi

ffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.1.0 (GCC)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/ffmpeg-3.3.1/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-version3 --enable-avresample --arch=x86_64 --disable-encoder=aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libbluray --enable-libcaca --enable-libcdio --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libmp3lame --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
Splitting the commandline.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '704x576'.
Reading option '-codec' ... matched as option 'codec' (codec name) with argument 'mpegvideo'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-analyzeduration' ... matched as AVOption 'analyzeduration' with argument '2147483647'.
Reading option '-probesize' ... matched as AVOption 'probesize' with argument '2147483647'.
Reading option '-i' ... matched as input url with argument 'serbare-gradinita.bin'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url serbare-gradinita.bin.
Applying option s (set frame size (WxH or abbreviation)) with argument 704x576.
Applying option codec (codec name) with argument mpegvideo.
Successfully parsed a group of options.
Opening an input file: serbare-gradinita.bin.
[file @ 0x148eda0] Setting default whitelist 'file,crypto'
[bin @ 0x148e600] Format bin probed with size=2048 and score=50
[bin @ 0x148e600] Before avformat_find_stream_info() pos: 0 bytes read:33152 seeks:3 nb_streams:1
[mpeg2video @ 0x148fa60] Invalid frame dimensions 0x0.
[bin @ 0x148e600] decoding for stream 0 failed
[bin @ 0x148e600] stream 0: start_time: -368934881474191040.000 duration: -368934881474191040.000
[bin @ 0x148e600] format: start_time: -9223372036854.775 duration: -9223372036854.775 bitrate=0 kb/s
[bin @ 0x148e600] Could not find codec parameters for stream 0 (Video: mpeg2video, 1 reference frame, none(tv)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[bin @ 0x148e600] After avformat_find_stream_info() pos: 819200 bytes read:852352 seeks:3 frames:1
Input #0, bin, from 'serbare-gradinita.bin':
  Duration: N/A, bitrate: N/A
    Stream #0:0, 1, 1/25: Video: mpeg2video, 1 reference frame

Pelo que entendi, ele olha para a extensão (.bin) e para um único frame e não consegue realmente descobrir os parâmetros do codec.

Onde obtenho todos os parâmetros de codec necessários e como especificá-los?

    
por Bogdan 08.06.2017 / 07:42

0 respostas