我在 VideoCD 上有一些家庭视频,我想传输到 YouTube,以便与家人分享。我用 备份了驱动器上的 CD 映像,dd
并用 播放这些映像,mplayer
效果很好。
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
告诉我们某些帧已损坏,但仍然可以正常播放视频。
现在我想使用 ffmpeg 将其转换为可以以最佳方式上传到 YouTube 的内容,但失败了。
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
据我所知,到目前为止,它查看扩展名(.bin)和单个帧,并且无法真正找出编解码器参数。
从哪里获取所需的所有编解码器参数以及如何指定它们?