为什么 FFmpeg 编码在 Ubuntu 上使用 DVD 视频文件时会停滞?

为什么 FFmpeg 编码在 Ubuntu 上使用 DVD 视频文件时会停滞?

我在 Ubuntu 上使用 FFmpeg 对 .bin 格式的 DVD 视频文件进行编码时遇到了一个棘手的问题。尽管尝试了各种方法(也使用 vlc 或 bounting 转换后的 .iso),包括调整命令复杂性,但该过程立即停滞,显示第一帧以外的任何进度。

使用的简化命令是:

ffmpeg -i image.bin output.mp4

这导致仅输出音频,VLC 显示黑屏或有时仅显示缩略图。

为了严格遵守视频的规格(见下文),我还尝试了更详细的命令,但没有成功:

ffmpeg -i image.bin -target pal-dvd -aspect 4:3 -b:v 777k \
  -minrate 300k -maxrate 2530k -bufsize 1835k -ar 44100 -ac 2 -b:a 128k \
  -y output.mpg

该命令启动后立即停止,显示:

frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:01:14.27 bitrate=   0.0kbits
frame=    1 fps=1.0 q=0.0 size=       0kB time=00:01:35.69 bitrate=   0.0kbits
frame=    1 fps=0.7 q=0.0 size=       0kB time=00:01:50.95 bitrate=   0.0kbits
frame=    1 fps=0.5 q=0.0 size=       0kB time=00:02:04.29 bitrate=   0.0kbits
frame=    1 fps=0.4 q=0.0 size=       0kB time=00:02:16.55 bitrate=   0.0kbits
...
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:34:28.15 bitrate=   0.0kbits

还是我太不耐烦了?

上下文是尝试处理从录像带到 DVD 或 SVCD 的转换项目,该项目显然是在 Windows 上完成的,其目录结构如下:

.
├── AVISYNTH.INI
├── CD_Image_File_CD1.bin
├── CD_Image_File_CD1.cue
├── dvd2svcd_log.txt
└── ___movie.ini

操作系统:Ubuntu 22.04

FFmpeg 版本:4.4.2-0ubuntu0.22.04.1

我可以读出的视频文件特征:

GENERAL INFO
- Source:       DVD (PAL)
- Movie Offset:     2 sec
- CD Overlap seconds:   Yes, 2 sec
- Startup delays:   Video: 180 ms Audio 1: 180 msAudio 2: 180 ms
- Video format:     PAL
- Length:       01:59:43
- CD Images:        1
   
VIDEO INFO:
- Encoder:      Cinema Craft Encoder 2.50.1.0
- Encoding mode:    Multipass VBR
- Passes:       2
- Max. bitrate:     2530
- Avg. bitrate:     777
- Min. bitrate:     300
- Bias: 20
- Image Quality Prio:   17
- Antinoise filter: No
- Linear quant. scale:  Yes
- Zigzag scan order:    Yes
- Upper field first:    No
- Progressive frames:   Yes
- iDCT Algorithm:   32-bit SSE MMX
- Deinterlace:      None
- Pulldown:     No
- Width:        480
- Height:       576
- Matrix:
            Intra:
             8 16 19 22 26 27 29 34 
            16 16 22 24 27 29 34 37 
            19 22 26 27 29 34 34 38 
            22 22 26 27 29 34 37 40 
            22 26 27 29 32 35 40 48 
            26 27 29 32 35 40 48 58 
            26 27 29 34 38 46 56 69 
            27 29 35 38 46 56 69 83 
            Non-Intra:
            16 17 18 19 20 21 22 23 
            17 18 19 20 21 22 23 24 
            18 19 20 21 22 23 24 25 
            19 20 21 22 23 24 26 27 
            20 21 22 23 25 26 27 28 
            21 22 23 24 26 27 28 30 
            22 23 24 26 27 28 30 31 
            23 24 25 27 28 30 31 33 

AVISYNTH SCRIPT:
LoadPlugin("C:\PROGRA~1\DVD2SVCD\AVISYN~1.5PL\Mpeg2dec\MPEG2D~1.DLL")
mpeg2source("D:\dvd2svcd\DVD2AV~1.D2V")
BicubicResize(480,576,0.0,0.6)
Import("D:\dvd2svcd\ResampleAudio.avs")
ResampleAudio(44100)
ConvertToYUY2()


AUDIO INFO:
- Audiostreams:     1
- Audio 1 Language: 
- Audio 1 Bitrate:  128
- Audio 1 Sample freq:  44100
- Audio 1 Mode:     Stereo
- Audio 1 Besweet:  "C:\Programme\DVD2SVCD\BeSweet\BeSweet.exe" -core( -input "D:\dvd2svcd\Extracted_audio_1.ac3" -output "D:\dvd2svcd\Encoded_audio_1.mp2" -logfile "D:\dvd2svcd\Encoded_audio_1.log" ) -azid( -L -3db -l 0db -c normal -s surround -g max ) -ota( -d -80 ) -shibatch( --rate 44100 ) -2lame( -e -b 128 -m s )

SUBTITLE INFO:
- Subtitlestreams:  0
- Type:         
- Sub. 1 Language:  
- Sub. 2 Language:  
- Sub. 3 Language:  
- Sub. 4 Language:  

AUTHORING INFO:
- CD Image program: VCDXBuild
- Entrysvd:     No

鉴于上述具体情况,我正在寻找有关 FFmpeg 为何会停滞以及如何解决此问题以获取我的视频的见解,尤其是考虑到视频文件的独特特性和最初成功的音频提取。任何有关可能绕过此停滞问题的替代方法或命令调整的建议都将不胜感激。

相关内容