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?
Tags ffmpeg mplayer video-encoding