Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    全志D1-H,官方SDK Tina2.0 移植 ffmpeg (交叉编译成功,运行时出问题)

    MR Series
    8
    16
    6029
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      leesum LV 3 last edited by

      移植ffmpeg

      CompilationGuide/Generic – FFmpeg
      FFmpeg-4.3.2 嵌入式Linux交叉编译_qq_29994663的博客-CSDN博客_交叉编译ffmpeg

      下载源码

      wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
      tar xvf ffmpeg-snapshot.tar.bz2
      cd ffmpeg
      

      环境配置

      在 ffmpeg 源码根目录创建自动配置文件 autogen.sh

      export PATH=$PATH:/home/leesum/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/
      
      ./configure \
              --prefix="./riscv-ffmpeg"\
              --enable-shared \
              --enable-cross-compile \
              --cross-prefix=riscv64-unknown-linux-gnu- \
              --target-os=linux \
              --arch=riscv \
              --enable-gpl \
              --enable-libx264 \
              --enable-libfdk-aac \
              --enable-nonfree \
              --extra-cflags="-I/home/leesum/tina-d1-h/out/d1-h-nezha/staging_dir/target/usr/include/ -I/home/leesum/tina-d1-h/out/d1-h-nezha/staging_dir/target/usr/include/allwinner/ -I/home/leesum/tina-d1-h/out/d1-h-nezha/staging_dir/target/usr/include/allwinner/include/" \
              --extra-ldflags="-L/home/leesum/tina-d1-h/out/d1-h-nezha/staging_dir/target/usr/lib/" \
              --extra-libs=-ldl
      
      

      激活环境

      chmod +x autogen.sh
      source ./autogen.sh
      

      没有报错就是配置成功

      交叉编译ffmpeg

      make -j2
      

      大约十分钟会编译成功,按照如上配置,我一次编译成功没有报错
      一次编译成功,没有报错

      make install
      

      进入设定的 --prefix 目录,

      cd riscv-ffmpeg
      cd bin
      file ffmpeg
      

      查看可执行文件类型,确实为 riscv64 可执行文件

      ➜  bin file ffmpeg
      ffmpeg: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-riscv64xthead-lp64d.so.1, for GNU/Linu
      ➜  bin
      

      将 riscv-ffmpeg 目录下的文件打包发送至开发板

      找不到动态库

      ffmpeg环境变量设置和安装后不能加载共享库的错误解决_Jensen Lee的博客-程序员宅基地 - 程序员宅基地 (cxyzjd.com)

      报错:报错找不到动态库

      ./ffmpeg: error while loading shared libraries: libx264.so: cannot open shared object file: No such file or directory
      

      根据报错信息可知缺少 libx264.so 这个动态库,进入 TinaSDK 根目录,搜索 libx264.so 将这个动态库复制到开发板中。

      find -name "libx264.so"
      


      进入目录 ls

      file 命令查看文件属性

      libx264.so.157: ELF 64-bit LSB shared object, UCB RISC-V, version 1 (SYSV), dynamically linked, with debug_info, not stripped
      

      libx264.so 是 libx264.so.157 的软连接,需要将这两个文件复制到开发板中的 lib 目录,或者 ffmpeg 根目录中的 lib 目录。
      在这里我将这两个文件复制到了 riscv-ffmpeg/lib 目录下。

      添加动态链接库的位置和环境变量的位置

      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/riscv-ffmpeg/lib
      export PATH=$PATH:/root/riscv-ffmpeg/bin
      

      运行 ffmpeg 显示下图则移植成功。

      出现问题

      虽然 ffmpeg 有显示,但是运行命令时会出现 Segmentation fault 错误,不知道如何解决,可能是配置的问题。

      1 Reply Last reply Reply Quote Share 1
      • YuzukiTsuru
        柚木 鉉 LV 9 last edited by

        不需要移植,Tina系统自带了ffmpeg

        tina-d1-h\package\multimedia\ffmpeg
        

        可能会出现编译错误的情况,打一下这个补丁(替换文件)
        ffmpeg.zip

        1 Reply Last reply Reply Quote Share 0
        • C
          ccl_whc LV 3 last edited by

          大佬真6,赞一个

          sora1874 1 Reply Last reply Reply Quote Share 0
          • sora1874
            sora1874 LV 5 @ccl_whc last edited by

            @ccl_whc 在 全志D1-H,官方SDK Tina2.0 移植 ffmpeg (交叉编译成功,运行时出问题) 中说:

            大佬真6,赞一个
            2.0的tina没有ffmpeg把

            1 Reply Last reply Reply Quote Share 0
            • YuzukiTsuru
              柚木 鉉 LV 9 last edited by

              解压丢到 package/mutimedia

              ffmpeg.zip

              Z 1 Reply Last reply Reply Quote Share 0
              • Z
                zjw123 LV 2 @YuzukiTsuru last edited by

                @yuzukitsuru 最新的tina里根本没有ffmpeg目录,怎么办呢?

                whycan YuzukiTsuru 2 Replies Last reply Reply Quote Share 0
                • whycan
                  whycan晕哥 LV 9 @zjw123 last edited by

                  @zjw123
                  曲线救国,

                  ① 用buildroot设置tina同一个编译器,把生成的文件拷贝过去.

                  ② 或者在pack 命令前把buildroot生成的rootfs image 复制到 tina的rootfs.fex指向的img文件

                  1 Reply Last reply Reply Quote Share 0
                  • YuzukiTsuru
                    柚木 鉉 LV 9 @zjw123 last edited by

                    @zjw123 一样解压丢到package/mutimedia

                    Z 2 Replies Last reply Reply Quote Share 0
                    • Z
                      zjw123 LV 2 @YuzukiTsuru last edited by

                      @yuzukitsuru
                      我在这个目录下执行 mm 后,在 /tina-D1-H/out/d1-h-nezha/compile_dir/target/ffmpeg-4.3.1/ipkg-install/ 下 生成了 可执行文件和库。
                      但是我怎么把这些文件打包到 .img 中的文件系统里呢?没有这个命令啊。

                      1 Reply Last reply Reply Quote Share 0
                      • Z
                        zjw123 LV 2 @YuzukiTsuru last edited by

                        @yuzukitsuru
                        我在这个目录下执行 mm 后,生成了 可执行文件和库。
                        但是我怎么把这些文件打包到 .img 中的文件系统里呢?没有这个命令啊

                        YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                        • YuzukiTsuru
                          柚木 鉉 LV 9 @zjw123 last edited by

                          @zjw123 m menuconfig里选中ffmpeg,mp编译打包

                          G 1 Reply Last reply Reply Quote Share 0
                          • G
                            GSD_ZCM LV 4 @YuzukiTsuru last edited by

                            @yuzukitsuru 前辈,修改这里面的Makefile,可以加快ffmepg的编译速度,我用了你提供的压缩包,然后编译,感觉只有单线程编译,好慢。
                            734ceeb9-073e-4175-85ca-146e1d57e479-image.png
                            但是还不太清楚需要修改哪里可以加快编译速度

                            WhycanService 1 Reply Last reply Reply Quote Share 0
                            • WhycanService
                              WhycanService LV 8 @GSD_ZCM last edited by

                              @gsd_zcm 找到compile里,加一个 -j

                              G 2 Replies Last reply Reply Quote Share 0
                              • G
                                GSD_ZCM LV 4 @WhycanService last edited by GSD_ZCM

                                @whycanservice ffmpeg - 加快编译.png
                                我这样修改后,可以加快编译速度了。

                                1 Reply Last reply Reply Quote Share 0
                                • G
                                  GSD_ZCM LV 4 @WhycanService last edited by

                                  @whycanservice 前辈,你好,我用了你提供的ffmpeg的包然后去编译,出现这样的错误,

                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/sshd': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/addpart': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/delpart': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/partx': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/resize2fs': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/tcpdump': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/wpa_cli': No space left on device
                                  cp: error writing '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/sbin/wpad': No space left on device
                                  cp: cannot create directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/share': No space left on device
                                  cp: cannot create directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/res': No space left on device
                                  cp: cannot create directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/include': No space left on device
                                  cp: cannot create directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/usr/libexec': No space left on device
                                  cp: cannot create directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root/www': No space left on device
                                  rm -f /home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/rootfs.img
                                  rm -f /home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/usr.img
                                  dd if=/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/root.ext4 of=/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/rootfs.img bs=128k conv=sync
                                  512+0 records in
                                  512+0 records out
                                  67108864 bytes (67 MB, 64 MiB) copied, 0.0423801 s, 1.6 GB/s
                                  ( cd /home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha ; find -maxdepth 1 -type f \! -name 'md5sums'  -printf "%P\n" | sort | xargs md5sum --binary > md5sums )
                                  ( cd /home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha ; find -maxdepth 1 -type f \! -name 'md5sums'  -printf "%P\n" | sort | xargs openssl dgst -sha256 > sha256sums )
                                  make[5]: Leaving directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/target/allwinner/generic/image'
                                  make[4]: Leaving directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/target/allwinner/d1-h-nezha'
                                  make[3]: Leaving directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux/target/allwinner'
                                  make[2]: Leaving directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux'
                                  export MAKEFLAGS= ;make -w -r package/index
                                  make[2]: Entering directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux'
                                  Generating package index...
                                  Signing key has not been configured
                                  make[2]: Leaving directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux'
                                  make[1]: Lea![21f0b82a-75a6-4be7-94ff-78d57beaae7e-image.png](/assets/uploads/files/1668569215929-21f0b82a-75a6-4be7-94ff-78d57beaae7e-image.png) ving directory '/home/zcm/linux/SDK/allwinner/D1/PET_D1-H_P01_Linux'
                                  
                                  

                                  我百度了下。说是虚拟机空间不够,但我的虚拟机下新装的,下面是我的硬盘空间使用情况。目前不知道问题出在哪里😧

                                  66007463-8126-4160-9bff-74e8f288edd7-image.png

                                  WhycanService 1 Reply Last reply Reply Quote Share 0
                                  • WhycanService
                                    WhycanService LV 8 @GSD_ZCM last edited by

                                    @gsd_zcm 这个是d1的空间不够,在menuconfig的base system里配置下

                                    1 Reply Last reply Reply Quote Share 0
                                    • 1 / 1
                                    • First post
                                      Last post

                                    Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                                    行为准则 | 用户协议 | 隐私权政策