我有一个DVR,它可以录制空中电视,并以MPEG-TS格式保存录音,将每集分割成多个文件,每个文件的大小约为500 MB。
为了简化归档,我一直在尝试编写一个shell脚本,以自动化将文件连接在一起并将它们转换成更常见的视频格式(如h.264 )的过程。
以下是我到目前为止所执行的步骤:
ffmpeg -hide_banner -f concat -i video_files_tmp.txt -c:v libx264 -pix_fmt yuv420p -c:a aac $2$OUTPUT_FILE_NAME
在代码转换期间,这将引发许多警告和错误,例如"PES数据包大小不匹配“。在某个时候,它会警告超过1,000帧被跳过。当输出被播放时,它将跳过帧,并导致一个文件,其中视频冻结一半,但音频继续播放。我还尝试将-vsync 0添加到输出中。
ffmpeg -hide_banner -f concat -i video_files_tmp.txt -c copy output_tmp.ts
ffmpeg -hide_banner -i output_tmp.ts -c:v libx265 -pix_fmt yuv420p -c:a aac $2$OUTPUT_FILE_NAME
这基本上和以前一样。
我想知道,设置哪些ffmpeg标志或选项来实现此工作,或其他我可以尝试的选项?谢谢!
发布于 2020-12-20 20:59:52
我也有类似的问题,我用ffmpeg解决了。
我首先列出了我想连接的所有文件的列表:
for i in `\ls`; do echo "file $i" >> my_file_list.txt; done不是每行开头的文件。然后我运行了ffmpeg,给了它文件列表:
ffmpeg -f concat -i my_file_list.txt -c copy output.mkvhttps://stackoverflow.com/questions/54858396
复制相似问题